数组------代码随想录部分完结小结:
已经使用过Python刷题过一遍,现在使用Java刷题,感觉很多是已经有思路了,并且能明白为什么要这样去做,以后复习主要的重点主要是双指针法。
双指针法的一些感悟:
常用的环境:
- 涉及到元素交换,又不想要开辟新空间的可以使用;
- 求解最小子集(滑动窗口------快慢指针)可以使用;
- 删除元素。
常用的方法:
- 一般的快慢指针:
- fast:用于去遍历数组,获取想要存放在新数组中的元素;
- slow:用于获取新数组元素的下标,将fast内的元素更新进来。
- 滑动窗口(我认为是快慢指针的一种):
- fast:用于遍历数组,获取右边界;
- slow:当满足条件时,开始更新,直到条件不满足,以获取左边界
- 最终目的:获取最小的子集。
- 头尾双指针:
- 用于交换次序;
- 或者用于处理非全部正数的数组,方便我们获取平方值的大小等用途。