浅析一道经典题

                 浅析一道经典题

这是acwing平台上的语法题里面的一道题目,初学的时候觉得有点难度,现在拿出来看看觉得还蛮有意思,多这些这种题目的确增加些刷题的乐趣hh。。。经典值得反复康康。。(而且发现偏移量和曼哈顿距离这种经典都可以写写博客拓展帮助记忆)

其实是自己的能力也只能分析分析这种题目手动狗头。。力进步中

直接上题目来自于刷题网站acwing

 

没错 ,,它就是非常非常经典的“”蛇形矩阵“”。。(如图)

 

根据题目的意思,输入俩个数 , 输出一个矩阵蛇字排列即可。。无论新手老手肯定想到用数组来比较方便(应该有很多方法可以做)。于是引出需要遍历上下如图:

 

很多题目都要设置一个偏移量。。如上(非常常用的技巧)

对于一个位置的数,以他为原点建造一个坐标系,写出上下左右的坐标,以0或1表示与这个点水平轴或者纵轴的距离。这样等下就可以设置一个偏移量数组d【x】,这样就可以表示出每次走的时候下一个格子的坐标,方便了很多很多。

  还有个问题就是确定需要转向的位置(走到顶部了)这时候就需要改变偏离的方向,利用取余就可达成(d = (d+1)%4)因为总共四个数,这样就能完成转向(偏转90度的目标)。。

所以上代码:

 

好像这还是微软的面试题。。Leetcode也有个类似的螺旋矩阵。。

偏移量是个非常常用且流弊的工具,看以后学精后能不能把做过的用了后方便很多的题总结出来看看。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZSup{A}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值