leetcode_59

淳属虚构 · · 415 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang:

思路:如果你已经做过了leetcode_54,那相比你对于螺旋已经有了一定的了解。这题的思路很简单,先初始化一个二维矩阵,再赋值。这里和leetcode_54不一样的是,建立的矩阵是n*n矩阵,所以只需要一直螺旋下去就可以了。那么螺旋赋值到什么时候结束呢?答案是当赋的值到达n*n后,就可以结束了,因为总共就赋值那么多次,也不用再去考虑溢出。

代码如下:

func generateMatrix(n int) [][]int {
    res:=make([][]int,n)
    for i:=0; i<n; i++ {
        res[i]=make([]int,n)
    }
    //x表示从起始点(x,x)
    //t表示第几行结束 (t,t)
    x,t,last:=0,n,n*n
    temp:=1
    for temp<=last{
        for s:=x;s<t;s++{
            res[x][s]=temp
            temp++
        }
        for s:=x+1;s<t;s++{
            res[s][t-1]=temp
            temp++
        }
        for s:=t-2;s>=x;s--{
            res[t-1][s]=temp
            temp++
        }
        for s:=t-2;s>x;s--  {
            res[s][x]=temp
            temp++
        }
        x++
        t--
    }
    return res
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:淳属虚构

查看原文:leetcode_59

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

415 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传