今日题目:
- 练习记录:
- 977.有序数组的平方
- 先用暴力解法写出来了,然后就直接去看了代码随想录题解|双指针,思路很容易理解
- 209.长度最小的子数组
- 先用暴力解法写了一遍,但是有一个测试用例一直没办法通过
- 测试用例的nums=[1,2,3,4,5],target=11,给的预期结果居然是3,我怎么找也没找见哪里有三个连续的数值能凑出来11啊,大为不解。然后到训练营群里求助了一下,很快就有同学回复我,才发现是自己没有认真看题目,题目是找出>=target!!!
- 977.有序数组的平方
var minSubArrayLen = function(target, nums) {
let sum = 0
let result = nums.length + 1
for (let i = 0; i < nums.length; i ++) {
sum = 0
for (let j = i; j < nums.length; j++) {
sum += nums[j]
if (sum >= target) {
result = result < j - i + 1 ? result : j - i + 1
break
}
}
}
return result == nums.length + 1 ? 0 : result
};
- 59.螺旋矩阵Ⅱ
- 自己想的时候通过画图发现奇数的时候,最后一个数字填写的位置是有规律可言的,但是偶数的时候自己就不知道该如何处理了。看了代码随想录题解|59.螺旋矩阵Ⅱ的文字版思路的时候,发现,自己没有做到左闭右开,也就是原文提到的“循环不变量原则”,导致需要各种条件判断,一直写不出来。
- 有了左闭右开的思路后,发现这个问题就变得很简单了,每个循环都只需要画好四条线就可以,如果n是奇数的话就额外再向中间位置填充数字。