首页 > 其他分享 >代码随想录突击版刷题

代码随想录突击版刷题

时间:2024-09-13 14:38:12浏览次数:11  
标签:matrix int 随想录 -- num 版刷题 ans 突击 size

704.二分查找

https://leetcode.cn/problems/binary-search/description/

 59.螺旋矩阵II

 https://leetcode.cn/problems/spiral-matrix-ii/description/、

参考题解写出

54.螺旋矩阵

 https://leetcode.cn/problems/spiral-matrix/description/

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        int t = 0, l = 0, b = m - 1, r = n - 1;
        vector<int> ans;
        int num_size = m*n;
        while(num_size > 0){
            for(int i = l; i <= r && num_size > 0; i++){
                ans.push_back(matrix[t][i]);//从左到右
                num_size--;
            } 
            t++;
            for(int i = t; i <= b && num_size > 0; i++){// 从上到下
                ans.push_back(matrix[i][r]);
                num_size--;
            }
            r--;
            for(int i = r; i >= l && num_size > 0; i--){//从右到左
                ans.push_back(matrix[b][i]);
                num_size--;
            }
            b--;
            for(int i = b; i >= t && num_size > 0; i--){//从下到上
                ans.push_back(matrix[i][l]);
                num_size--;
            }
            l++;
        }
        return ans;
    }
};

  

标签:matrix,int,随想录,--,num,版刷题,ans,突击,size
From: https://www.cnblogs.com/spp20/p/18412131

相关文章

  • 代码随想录算法训练营,9月12日 | 513.找树左下角的值,112. 路径总和,106.从中序与后序遍
    513.找树左下角的值题目链接:513.找树左下角的值文档讲解︰代码随想录(programmercarl.com)视频讲解︰找树左下角的值日期:2024-09-12想法:1.迭代:用层序遍历,遍历每层时记录下第一个节点的值,到最后一层就是要求的值;2.递归:根据最大的深度来找目标值。Java代码如下://迭代classSolut......
  • 图论篇--代码随想录算法训练营第五十七天打卡| 最小生成树问题
    题目链接:53.寻宝(第七期模拟笔试)题目描述:在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将所有岛屿联通起来(注意:这......
  • Java突击面试八股文(15个技术栈,持续更新中)
    1.Java如何避免死锁注意加锁的顺序,保证每个线程按顺序进行加锁;加锁时限,可以设置一个超时时间;注意死锁检查,这是一种预防机制,可以确保发生死锁的第一时间进行处理。3、多线程(线程池)2线程有哪些状态(生命周期)新建、就绪、运行、阻塞、死亡3如何获取多线程的返回值?深坑!如果......
  • 代码随想录训练营day44|1143.最长公共子序列,1035.不相交的线, 53. 最大子序和,392.判
    1143.最长公共子序列这题并不要求连续子序列的要求是可以删除某些元素,但不能改变顺序。顺着上题的思路,这题也应该设立一个二维数组vector<vector<int>>dp(text1.size(),vector<int>(text2.size(),0));dp[i][j]表示的是以text1[i]为结尾的字符串和以text2[j]为结尾的......
  • 代码随想录算法训练营Day1
    目录704.二分查找 27.移除元素977.有序数组的平方 704.二分查找 分类:左闭右闭、左闭右开Tips:1.循环条件:左闭右闭:左索引<=右索引左闭右开:左索引<右索引2.循环操作:处理元素>目标值:左闭右闭:右索引=折半索引-1左闭右开:右索引=折半索引classSolution{......
  • 代码随想录训练营day41|121. 买卖股票的最佳时机,122.买卖股票的最佳时机II,123.买卖股
    121.买卖股票的最佳时机这题和贪心中的买股票很想,但这里不用考虑局部问题,因为只用买一张卖一张。我想可以用一个数组dp来记录买入价格和卖出价格。然后遍历数组草我感觉我写的想贪心。动态规划dp[i][0]表示第i天不持股的最大收益,dp[i][1]表示第i天持股的最大收益。dp......
  • 【代码随想录Day13】二叉树Part01
    理论基础文章讲解:代码随想录二叉树节点的定义:publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intval,TreeNodeleft,TreeNoderight){this.val......
  • 代码随想录算法 - 二叉树
    题目1226.翻转二叉树给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]提示:树中节点数目范围在[0,100]内-100<=Node.val......
  • 代码随想录day 56 || 图论6
    Prim算法应用场景是主要是找到一个无向连通图的最小生成树,即连接所有节点且权重总和最小的树//prim三部曲//1,找到距离当前最小树最近节点//2,节点入树//3,更新mindist//更新树funcupdateMinDist(edges[][]int,nodeint){ for_,edge:=rangeedges{ ifed......
  • 代码随想录训练营第28天|利润分解
    122.买卖股票的最佳时机IIclassSolution{public:intmaxProfit(vector<int>&prices){intsum=0,day_profit;for(inti=1;i<prices.size();i++){day_profit=prices[i]-prices[i-1];if(day_profit>0)......