Day02 数组part02| LeetCode 209. 长度最小的子数组,59. 螺旋矩阵 II

长度最小的子数组——滑动窗口

209. 长度最小的子数组

  • 滑动窗口
    • 如何移动起始位置
    • 本质思想:双指针
class Solution {
    public int minSubArrayLen(int target, int[] nums) {
          int realRes=nums.length+1;//最终结果的长度

          int sum=0;//滑动窗口的和
            int i=0;//滑动窗口的起始位置
        int length=0;//滑动窗口的长度
            for(int j=0;j<nums.length;j++)//j表示结束位置
            {
                sum+=nums[j];
                while(sum>=target)
                {
                    length=(j-i+1);
                    realRes=realRes<length?realRes:length;
                    sum-=nums[i++];//滑动窗口的和减去起始位置的值,同时起始位置向后移动
                }
            }
            if(realRes== nums.length+1)//没有符合条件的子序列
            {
                return 0;
            }
            return realRes;
}
}

螺旋矩阵

59. 螺旋矩阵 II

  • 遵循循环不变量原则

  • 每条边的处理规则:左闭右开?左闭右闭

  • 循环结束 n/2:要转n/2个圈,如果n为奇数的话,则对最后一个数作特殊处理

class Solution {
    public int[][] generateMatrix(int n) {
//        左闭右开
        int [][] result=new int[n][n];
        int startX=0,startY=0;//每一圈的起始位置
        int offset=1;
        int count=1;
        int loop=1;//当前圈数
        int i,j;
        while(loop<=n/2)
        {
                for( j=startY;j<n-offset;j++)
                {
                    result[startX][j]=count++;

                }
                for( i=startX;i<n-offset;i++)
                {
                    result[i][j]=count++;
                }
                for(;j>startY;j--)
                {
                    result[i][j]=count++;
                }
                for(;i>startX;i--)
                {
                    result[i][j]=count++;
                }
                startX++;
                startY++;
                offset++;
                loop++;
        }
        if(n%2!=0)//奇数
        {
            result[startX][startY]=count;
        }
        return result;


    }
}

posted on   FreeDrama  阅读(5)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示