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

本文探讨了如何通过双指针优化解决有序数组平方问题,并介绍了滑动窗口技巧在找到长度最小子数组和螺旋矩阵生成中的应用。从算法效率和实际问题解决策略角度,提供了实例解析和代码演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天仍然是对数组的练习。
977.有序数组的平方
题目描述:给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按 非递减顺序排序。

可以通过暴力解法首先将个数平方放入对应位置,然后再使用还是方法完成不是
这道题下面的题解有复习各种排序解法可以去看一下。
优化解法: 双指针
因为有序序列所以只需要分别比较头和尾平方以后谁大?然后倒着放回来就可以。放满整个数组了。还是很容易想到的。
209.长度最小的子数组。
这道题是通过滑动窗口来查找出最短长度的。
窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。
窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。
窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。
窗口的不断移动时大小要在移动的时候改变。可能开始会作不适应写嗯这种连贯的动作。可以尝试一下类似的题目。例如904水果成篮76最小覆盖子串
这样的操作在程序中是很快速且实用的。

!](https://img-blog.csdnimg.cn/c2ecb56774e9495c9802f39ff09e322a.png)

59.螺旋矩阵II

题目描述:给你一个正整数 n ,生成一个包含1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵 matrix 。

这题刚开始没思路,不知道怎么写,用for循环啥的,很混乱。
看了讲解以后就清楚多了,只是不知道为什么偏移量是加2。然后自己通过画图反而明白了。因为每一层级会少上左右两边,所以偏移量是+2。这道题下的官方体检的c语言版。对于我来说反而更好理解。我把它贴在这里。在这里插入图片描述
螺旋矩阵这样的写法。在一些游戏UI界面的展示上也可以用到,可以给玩家带来独特体验这。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Javie Deng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值