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

 今日题目:



977.有序数组的平方

209.长度最小的子数组

59.螺旋矩阵Ⅱ


  • 练习记录:
    • 977.有序数组的平方
    • 209.长度最小的子数组
      • 先用暴力解法写了一遍,但是有一个测试用例一直没办法通过
      • 测试用例的nums=[1,2,3,4,5],target=11,给的预期结果居然是3,我怎么找也没找见哪里有三个连续的数值能凑出来11啊,大为不解。然后到训练营群里求助了一下,很快就有同学回复我,才发现是自己没有认真看题目,题目是找出>=target!!!
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是奇数的话就额外再向中间位置填充数字。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值