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

977.有序数组的平方

题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/

解答:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html

看了双指针的算法思路就可以自己写出来了,主要还是思路更重要:找到负数和正数的分界线,然后用归并排序

错误1.没有考虑到整个数组都是负数的情况,这时候如果通过while(nums[i]<0)的方式来寻找分界线下标,就会循环到i=nums.length, nums[i],就越界了


209.长度最小的子数组

题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/

解答:https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html

使用滑动窗口(双指针),我也是看了大概的思路自己写出来了,当总和小于target时,就移动窗口的right指针向前,使窗口覆盖范围增加;如果总和大于等于target时,就移动窗口的left指针向前,使窗口覆盖范围减小,然后记录更新窗口长度的最小值

错误1. if(right-left < minLength) 没有加括号(感觉这个错误很粗心,但是又很容易犯错)

应该是if((right-left)<minLength)


59.螺旋矩阵II

题目链接:https://leetcode.cn/problems/spiral-matrix-ii/

解答:https://programmercarl.com/0059.%E8%9E%BA%E6%97%8B%E7%9F%A9%E9%98%B5II.html

模拟顺时针画矩阵的过程:

填充上行从左到右

填充右列从上到下

填充下行从右到左

填充左列从下到上

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容