首页 > 其他分享 >力扣146 螺旋遍历二维数组

力扣146 螺旋遍历二维数组

时间:2023-12-14 13:32:59浏览次数:31  
标签:146 break 遍历 int res 力扣 flag array size

Problem: LCR 146. 螺旋遍历二维数组

思路

多个循环螺旋模拟


class Solution {
public:
    vector<int> spiralArray(vector<vector<int>>& array) {
        vector<int>res;
        int m=array.size();
        if(m==0){
            return res;
        }
        int n=array[0].size(),i=0,flag=0;
        while(res.size()<m*n){
            for(int j=i;j<n-i;j++){
                res.push_back(array[i][j]);
                if(res.size()==m*n){
                    flag=1;
                    break;
                }
            }
            if(flag)break;

            for(int j=i+1;j<m-i;j++){
                res.push_back(array[j][n-i-1]);
                if(res.size()==m*n){
                    flag=1;
                    break;
                }
            }
            if(flag)break;

            for(int j=n-i-2;j>=i;j--){
                res.push_back(array[m-1-i][j]);
                if(res.size()==m*n){
                    flag=1;
                    break;
                }
            }
            if(flag)break;

            for(int j=m-i-2;j>=i+1;j--){
                res.push_back(array[j][i]);
                if(res.size()==m*n){
                    flag=1;
                    break;
                }
            }
            if(flag)break;

            i++;
        }
        return res;
    }
};

标签:146,break,遍历,int,res,力扣,flag,array,size
From: https://blog.51cto.com/u_15974747/8819194

相关文章

  • 1465.
    矩形蛋糕的高度为h且宽度为w,给你两个整数数组horizontalCuts和verticalCuts,其中:horizontalCuts[i]是从矩形蛋糕顶部到第i个水平切口的距离verticalCuts[j]是从矩形蛋糕的左侧到第j个竖直切口的距离请你按数组horizontalCuts和verticalCuts中提供的水平和竖直位......
  • 1465.
    矩形蛋糕的高度为h且宽度为w,给你两个整数数组horizontalCuts和verticalCuts,其中:horizontalCuts[i]是从矩形蛋糕顶部到第i个水平切口的距离verticalCuts[j]是从矩形蛋糕的左侧到第j个竖直切口的距离请你按数组horizontalCuts和verticalCuts中提供的水平和竖直位......
  • 将第2层数据中的数组对象中的ts属性、value属性遍历单独存放到一个新数组中xData、yDa
          ......
  • [JavaScript] JS中如何跳出循环/结束遍历
    [JavaScript]JS中如何跳出循环/结束遍历直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。 序号方法breakcontinuereturnreturntruereturnfalse结论1for循环成功跳出本次循......
  • 力扣2477. 到达首都的最少油耗(dfs+贪心)
    给你一棵 n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 到 n-1 ,且恰好有 n-1 条路。0 是首都。给你一个二维整数数组 roads ,其中 roads[i]=[ai,bi] ,表示城市 ai 和 bi 之间有一条 双向路 。每个城市里有一个代表,他们都要去首都参......
  • 12.12邻接表存储实现图的深度优先遍历(c++)
    今天学习了数据结构中的邻接表存储实现图的深度优先遍历,其中让我受益匪浅,以下是我的解题思路。编写程序,实现由邻接表存储实现无向图的深度优先搜索遍历的功能。顶点为字符型。输入格式:第一行输入顶点个数及边的个数,第二行依次输入各顶点,第三行开始依次输入边的两个顶点,用空格......
  • 力扣101-对称二叉树
    该题难度为【简单】1.尝试自己写,哪怕写个暴力解法也行,没写出来,看官方题解。2.扫了一眼,不太理解,又想了一会“我代码里漏掉的一半在官方思路中是怎么补上的”,再从头看一遍文字解析,“原来是两棵树对比”。这样思路就清晰了,用递归遍历每个节点,比较每次遍历的“根节点”即可。3.......
  • Leetcode刷题day12-二叉树.前中后序遍历
    递归法实现前.中.后序遍历代码随想录(programmercarl.com)解题思路前序遍历:头->左->右中序遍历:左->头->右后序遍历:左->右->头递归法实现流程:1.定义递归函数;2.寻找递归终止条件;3.设计单层递归模块classSolution(): def__init__(self,val=0,left=None,right=None): sel......
  • 力扣1200 最小绝对差
    Problem: 1200.最小绝对差思路先排序(用sort),找出最小绝对差,然后再次遍历添加数组classSolution{public:vector<vector<int>>minimumAbsDifference(vector<int>&arr){vector<vector<int>>res;sort(arr.begin(),arr.end());in......
  • 写class的奇淫巧技-数组遍历
    class想提供类似数组的能力可以自定义Symbol.iteratorclassA{ *[Symbol.iterator](){ yieldthis.x; yieldthis.y; yieldthis.z; }}如:......