Skip to content

Latest commit

 

History

History
111 lines (96 loc) · 2.4 KB

59.md

File metadata and controls

111 lines (96 loc) · 2.4 KB

✏️Leetcode基础刷题之(59. Spiral Matrix II)


. 2019-07-31 吴亲库里 库里的深夜食堂

✏️题目描述

这道题是54的第二个版本,其实也就是类似相反的操作,给定一个整数,从1到n的平方输出旋转式的顺序。


✏️题目实例

****

✏️题目分析

搞清楚返回的顺序,对应每一个点进行填充。

✏️最终实现代码

  /**
     * @param Integer $n
     * @return Integer[][]
     */
    function generateMatrix($n) {
        $up=0;
        $down=$n-1;
        $left=0;
        $right=$n-1;
        $start=1;
        $res=[];
        while($left<=$right){
            for($i=$left;$i<=$right;++$i){
                $res[$up][$i]=$start++;
            }
            $up++;
            for($i=$up;$i<=$down;++$i){
                $res[$i][$right]=$start++;
            }
            $right--;
            for($i=$right;$i>=$left;--$i){
                $res[$down][$i]=$start++;
            }
            $down--;
            for($i=$down;$i>=$up;--$i){
                $res[$i][$left]=$start++;
            }

            $left++;
        }
        foreach($res as $key=>$val){
            ksort($res[$key]);
        }
        return $res;
    }

可以看到最后我还给每一个一维数组进行ksort排序,这是为什么。打印一下返回值。看一下没排序之前的。

array(3) {
  [0]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
  [1]=>
  array(3) {
    [2]=>
    int(4)
    [0]=>
    int(8)
    [1]=>
    int(9)
  }
  [2]=>
  array(3) {
    [2]=>
    int(5)
    [1]=>
    int(6)
    [0]=>
    int(7)
  }
 }

正确的结果

[[1,2,3],[8,9,4],[7,6,5]]

乍一看没问题啊,下标都对的上啊,但是当我提交的时候


联系