Amber代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

本文主要讲述了在解决977有序数组平方和209长度最小子数组问题时,作者掌握了双指针和滑动窗口思想的应用。在螺旋矩阵II中遇到逻辑困扰,通过调整边界感和清晰变量使用解决了问题,强调了编程中理解和组织逻辑的重要性。
摘要由CSDN通过智能技术生成

 1. 977.有序数组的平方 ,209.长度最小的子数组 

基本上没遇到什么困难 - 主要是掌握双指针的思想(双指针可以保留记忆和位置)和滑动窗口的思想

2. 59.螺旋矩阵II

主要是逻辑没有理清楚,在保留最后一个空格不赋值的逻辑后,代码变得十分简单。在看完视频之后第二次代码五分钟就写好了。注意后面的是startx和starty,因为是一个起始位置。

同时还有一个要注意的点是:变量的定义。第一次另一个没有写出来的原因是变量太少了,比如混淆了starty和y,一起使用了他们,导致逻辑不清楚。

总结:要注意边界感和变量的使用

听课总结的笔记

class Solution {
    public int[][] generateMatrix(int n) {

        int loop = 0;
        int[][] result = new int[n][n];

        int startx = 0;
        int starty = 0;
        int offset = 1;
        int number = 1;
        int x = 0;
        int y = 0;

        while (loop < n/2){

            for(y = starty;y < n-offset;y++){
                result[startx][y] = number;
                number++;
            }

            for(x = startx;x< n-offset;x++){
                result[x][y] = number;
                number++;
            }

            for (y=y;y>starty;y--){
                result[x][y] = number;
                number++;
            }

            for (x=x;x>startx;x--){
                result[x][y] = number;
                number++;
            }

            offset++;
            startx++;
            starty++;
            loop++;
        }

        if ( n%2 == 1){
            result[startx][starty] = number;
        }

        return result;

    }
}

总结

  • 困难:在977和209没有什么问题,但螺旋矩阵出现了问题,思路无法捋清。大概学习了2h左右。
  • 来源:代码随想录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值