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

 文字讲解:代码随想录(programmercarl.com)

题目链接:977.有序数组的平方 209.长度最小的子数组

一、有序数组的平方

数组的平方最大值就在数组的两端,使用双指针法。

二、长度最小的子数组

滑动窗口

窗口内是满足和大于等于s的连续子数组

当窗口内的和大于等于s时,窗口就该缩短了,即起始位置向右移动。

一段子数组,还是由起始位置和终止位置决定的,只是通过和维系终止位置和起始位置的关系,进而可以减少一次遍历。

先在和中减去起始位置的值,再左移。

滑动窗口的精髓:不断变更子数组的起始位置

三、螺旋矩阵

一圈要画四条边,以圈数为循环条件,每条边坚持左闭右开,每一圈每一条边画的终点为n-当前圈数,内圈的起点缩进。

循环条件为 while(loop++<n/2),使得比较大小后,loop从1开始。为了满足赋值需要,另维护一个start变量从0开始,表明每一圈的起始位置。

针对n为奇数的情况,需单独对中心点赋值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值