我能不能用代码改变世界不知道,但是我准备先刷刷算法来改变自己。希望没有太晚。
数组 移除元素
暴力算法就是两个for循环来处理,将数据放到最后去,我有点想不清楚暴力方式了。
但是非暴力的方式是两个指针,快指针用于遍历数组的,慢指针用于放新的数组元素,所以如果值不等于目标值,就可以将值放进慢指针,并且移动慢指针。
977 有序数据的平方
思路其实也是前后两个指针,因为是平方,所以就是左右那个平方值最大,那就用哪个。还有一个点,是要倒着放,因为大的是可以固定的,小的不行。所以是倒着放值。
class Solution {
public int[] sortedSquares(int[] nums) {
int left = 0;
int right = nums.length-1;
int[] res = new int[nums.length];
int i = nums.length-1;
while(right >= left){
if(nums[right]* nums[right] >= nums[left]*nums[left]){
res[i] = nums[right]*nums[right];
right--;
}else{
res[i] = nums[left]*nums[left];
left++;
}
i--;
}
return res;
}
}
浙公网安备 33010602011771号