解题思路
引入临时变量缓存
class Solution {
public void moveZeroes(int[] nums) {
int[] aux = new int[nums.length];
int k = 0;
for(int i=0; i<nums.length; i++){
if(nums[i] != 0){
aux[k] = nums[i];
k++;
}
}
for(int i=0; i<nums.length; i++){
nums[i] = aux[i];
}
}
}
解题思路
维持一个指针k,使其满足nums[0...k),为不为零操作,赋值操作之后k++
class Solution {
public void moveZeroes(int[] nums) {
int k = 0;
for(int i=0; i<nums.length; i++){
if(nums[i] != 0){
nums[k] = nums[i];
k++;
}
}
for(int i=k; i<nums.length; i++){
nums[i] = 0;
}
}
}
很简单的一道题,但是我们不能只追求解决问题,而是不断的问自己,还有没有更好的思路,为什么之前没有想到。不断疯狂进化。