数组:
- 701.二分查找
- 27.移除元素
- 977.有序数组的平方
思路:
暴力解法就是:第一次for循环全部平方,第二次for循环重新排序
再次想到用双指针代替两次for循环
但是双指针有两种思路:一种是从中间分别向两边移动,一种是从分别两边向中间移动
- 如果是前者,就要先找到最小的数,这个地方的讨论就很复杂,到底有没有零,以及如果全是负数的情况下数组跳出循环的条件会越界,反正就是会有很多问题!所以不这么想!
- 需要注意的是题目没有要求必须原地变化,也就是不需要考虑覆盖的问题。同时每个数组的长度是确定可求的,所以从两端往中间移动是最简单的思路!
语法tips:
- 输入和输出都是数组的函数头:public int[] sort(int[] nums)
- 数组的创建: int[] result = new int[len]
- 数的平方:A*A即可