zoukankan      html  css  js  c++  java
  • LeetCode OJ-- Spiral Matrix

    https://oj.leetcode.com/problems/spiral-matrix/

    螺旋矩阵,逆着转,输出矩阵中的元素。

    在纸上模仿,然后记左上角(l1,l2)右上角(l1,r2),左下角(p1,l2)右下角(p1,r2).

    然后4个for循环从一个点到另一个点位置遍历。

    while控制总的。

    当在一次遍历中,没有要输出的点,说明遍历结束。

    class Solution {
    public:
        vector<int> spiralOrder(vector<vector<int> > &matrix) {
            vector<int> ans;
            int row = matrix.size();
            if(row == 0)
                return ans;
            if(row ==1)
            {
                for(int i = 0;i<matrix[0].size();i++)
                    ans.push_back(matrix[0][i]);
                return ans;
            }
            int col = matrix[0].size();
    
            int l1,l2,r2,p1;
            l1 = 0;
            l2 = 0;
            r2 = col - 1;
            p1 = row -1;
            
            while(1)
            {
                int i;
                if(l2>r2)
                    break;
                for(i = l2; i <= r2; i++)
                    ans.push_back(matrix[l1][i]);
    
                if(l1+1>p1)
                    break;
                for(i = l1+1;i<= p1;i++)
                    ans.push_back(matrix[i][r2]);
    
                if(r2-1<l2)
                    break;
                for(i = r2-1;i>=l2;i--)
                    ans.push_back(matrix[p1][i]);
    
                if(p1-1<l1+1)
                    break;
                for(i = p1-1;i>=l1+1;i--)
                    ans.push_back(matrix[i][l2]);
                l1++;
                l2++;
                r2--;
                p1--;
            }
            return ans;
        }
    };
  • 相关阅读:
    maven解析xml+测试test+注解
    MyBatis简单了解
    获取字符串中不重复的第一个字符
    整合ssm集成框架
    Git版本控制的原理
    git优点缺点(简单介绍)
    Maven生命周期
    Maven仓库分类
    maven常用命令
    myVision云服务商业数据分析解决方案
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3800733.html
Copyright © 2011-2022 走看看