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;
        }
    };
  • 相关阅读:
    Redis学习第二天
    Redis学习
    jQuery基础
    Hashtable 和 HashMap 的区别
    JSP页面乱码问题
    Day28 java8:Stream API
    转 链表中节点每k个一组反转
    day 27 lambda表达式(针对接口) & 函数式接口
    day20异常2
    day20 异常1
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3800733.html
Copyright © 2011-2022 走看看