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

所有题目文章讲解及实现代码:
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

977.有序数组的平方

视频讲解:
https://www.bilibili.com/video/BV1QB4y1D7ep
题目比较简单,但可以对前一天的内容进行一定的复习和运用。共两种办法①平方后直接sort排序②双指针平方和排序放在一起

类比二分和移除元素:
在②中使用双指针,指针遍历结束的条件我也是从两指针相等时是否可以、两指针交错时是否可以来判断的。

209.长度最小的子数组

视频讲解:
https://www.bilibili.com/video/BV1tZ4y1q7XE
题目用到了滑动窗口,是我之前不会用的知识点。一共两种解法:①暴力两层for循环②滑动窗口一层循环

59.螺旋矩阵Ⅱshi[p

视频讲解:
https://leetcode.cn/problems/spiral-matrix-ii/
题目偏难,以为放数字的时候也是转着圈放的,结果它是分成四个情况往里地放的。与二分类比,同样坚持了循环不变量原则——始终坚持左闭右开原则。

自己一个误区:

for(int i = 0; i < 3; i++)
{
	...
}
//循环结束后i=3,因为要跳出循环

ps:
通过该题弄清楚了取模(求除数)和取余(求余数)

一些疑问:
①在循环中重复声明变量会对内存或者效率产生影响吗?
②在计算时间复杂度的时候只算for循环,while循环不算吗?

你可能感兴趣的:(leetcode,数据结构,算法)