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

文章介绍了在解决LeetCode中的三个问题时的思考过程,包括有序数组的平方后排序(使用双指针优化)、求长度最小的子数组使得和大于等于目标值(滑动窗口法)以及生成螺旋矩阵(处理循环与边界)。作者反思了编程中的常见错误,如未正确赋值、变量重定义和循环条件设定。

977 有序数组的平方
题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/
思路:1、看到题目会想到先平方然后使用sort函数进行排序
2、由于是有序数组,平方后的最大值肯定是在数组两端,所以也可以使用双指针,将结果存放在新数组。
思路1:在这里插入图片描述
思路2
在这里插入图片描述
小结:由于对基础知识的不熟悉,定义int j,k=nums.size()-1,实际上j并未赋值。最大值取了之后要对指针变量进行更新。

209 长度最小的子数组
题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/
思路:滑动窗口法
在这里插入图片描述
i指向窗口起点,j指向窗口终点;随着j的不断移动,直到窗口内数值之和大于等于目标值,把这时候窗口长度值记录, 然后窗口前端j的位置往后移一位,进行比较,最后得到最小值。
在这里插入图片描述
小结:for循环的条件卡壳了,想到应该是以窗口终点不断更新到数组末端。
忘了添加result没有被赋值,返回0。
59.螺旋矩阵II
题目链接:https://leetcode.cn/problems/spiral-matrix-ii/
思路:在这里插入图片描述
坚持每条边左闭右开原则

在这里插入图片描述
小结:犯了一个错误,i,j已经定义过了,在for循环中重新定义导致出错,难点就是变量多,在循环过程中如何使用这些变量,循环的限制条件,以及一圈过后有哪些变量需要变化(起始位置,循环中每一条边的长度)。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值