代码随想录算法训练营第二天| 977.209.59Leetcode题目

学习目标:

双指针与滑动窗口


学习内容:

  • 977有序数组的平方
  • 209长度最下的子数组
  • 59螺旋矩阵II

1.907有序数组的平方

a.非递减顺序整数数组

b.返回一个非递减顺序数组

c.新数组为旧数组每个数字平方

思路:

1.遍历生成平方数存入新数组

2.排序

 双指针法(代码随想录视频)

思路:

1.原数组平方后两侧为数组内最大的数

2.运用两个指针从两侧移动比较

3.大的存入新数组

代码

209长度最小的子数组

a.正整数数组

b.查找数组的和>=s且长度最小

c.返回数组的长度

思路:

1.定义快慢指针相加累计记录值

2.当指针的和>=查找的数值记录两个指针的下标

3.慢指针移动,继续记录

4.比较新得到的数组长度与原来比较保存最短的

5.返回

自写代码未通过

双指针法(代码随想录视频)

滑动窗口(两指针中间的集合)

 思路

1.一个for循环做两个for循环的事情

2.不断调节子序列的起始终止位置

3.终止位置随着forloop移动

4.起始位置当集合里边的和>=target移动起始位置

5.Sum要减去起始位置的值★

6.起始位置的更新可能是持续的,要用While

代码

总结注意事项

1.起始位置更新的持续性

2.起始位置更新后原sum数值的更新

3.return返回时判断是否被赋值,既无符合条件的子序列,返回0

59螺旋矩阵II

a.正整数n

b.1-n的方的元素

c.按照顺时针形成正方形矩阵

d.返回一个二维数组

思路:

1.生成N的方,大小的数组 即n个n元素的数组

2.计算循环次数

2.生成数组规律(n-1) 3 12.34.56.78.9

                        4.123. 456. 789. 101112

                            13.14.15.16

3.第一次循环为n 第二次循环为n-2 直到n-2<0

(也就是边的循环为n/2)

4.增减x,y坐标确定二维数组的位置赋值

写两遍逻辑乱了直接看的视频

代码随想录视频

要点:

1.处理边界点为关键

2.循环不变量

3.左闭右开

代码:


 54.螺旋矩阵

 1.确定上下左右边界

2.移动,更新数组

 

学习时间:

  • 10:00-1:00

学习产出:

1.leetcode 4道题

2.掌握滑动窗口,双指针

3.理解循环不变量,如何处理边界点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值