【LeetCode-java】复习专题(6):数组:旋转矩阵[0806]

200805今天复习专题写的是数组的54. 旋转矩阵 Spiral Matrix59. 螺旋矩阵II Spiral Matrix II

这两个也是剑指offer上的经典题目,对于边界条件要求的非常严格,短时间内很有可能是难以考虑周全的。

5. 数组:旋转矩阵

54. 旋转矩阵 Spiral Matrix

  • 难度:中等
  • 慢慢遍历,加边界条件。
  • 这个题本身不难,但是在短时间内处理好边界条件是不容易的。如哪里是等于,哪里是小于等于,向什么方向都要很小心。
    • 1.四个for循环的顺序不能交换,因为就是按照这个顺序执行的。如第一个ans.add(matrix[up][i]),就是固定了第up列的结果。所以这里不能出错。
    • 2.for循环里的等号是可以取到的,相等的时候仍然可行。
    • 3.循环在什么时候结束呢?只要满足break的任何一个条件就可以了。为满足其中任何一个条件,都需要到达最里面的那个点(可能不是最中间,但是基本一定在里面)。这样的话再在updown,等这里作任何加减都会导致条件被破坏。
  • 因为这不是一个方阵,所以最后一个点未必是在最中心的,所以最后是以什么形式到达的最后一个点我们并不清楚,四种情况满足任何一个都break
class Solution {
   
    public List<Integer> spiralOrder(int[][] matrix) {
   
        List<Integer> ans = new ArrayList<>();
        if (matrix == null || matrix.length == 0 || matrix[0] == null || matrix[0].length == 0) return ans;
        int row = matrix.length;
        int col = matrix[0].length;

        int up = 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值