zoukankan      html  css  js  c++  java
  • leetcode-59-螺旋矩阵 II

    题目:

    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
    示例:
    输入: 3
    输出:
    [
    [ 1, 2, 3 ],
    [ 8, 9, 4 ],
    [ 7, 6, 5 ]
    ]
    这题很简单!!!

    java代码,解题思路:

    class Solution {
        public int[][] generateMatrix(int n) {
             
            //思路:
            /*
            方向:   从左向右  从上往下  再向左  最后再向上  
            按照以上方向一次排数,最后返回排序后的二维数组
            */
            int[][] ret = new int[n][n];
            int left = 0;
            int right = n - 1;
            int up = 0;
            int down = n -1 ;
            int count = 1;
            
            while(left <= right && up <= down){
                //向右
                for (int i = left; i <= right; i++){
                    ret[up][i] = count++;       //行不变,列在变,以下依次观察对应情况
                }
                //下一步要移动的方向  所以up++, 即下一步向下 ,依次类推
                up++;
                //向下
                for(int i= up; i <= down; i++){
                    ret[i][right] = count++;     
                }
                right--;
                //向左
                for(int i = right; i >= left; i--){
                    ret[down][i] = count++;   //从down(为最底部)的行开始想右排数
                }
                down--;
                //向上
                for(int i = down; i >=up;i--){ //向上走
                    ret[i][left] = count++;
                }
                left++;
            }
            return  ret;  //返回排序后的二维数组
        }
    }
    
  • 相关阅读:
    (转)Maven实战(三)Eclipse构建Maven项目
    刷欢乐豆的方法
    R-pie()
    R-plot()
    10只老鼠与1000瓶药水
    资源共享
    第一只python小爬虫
    正则表达式之python实现
    马踏棋盘之贪心算法优化
    八皇后之回溯法解决
  • 原文地址:https://www.cnblogs.com/fightingcode/p/11046468.html
Copyright © 2011-2022 走看看