给定一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺 序。C语言
时间: 2024-05-13 21:16:43 浏览: 93
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
可以使用双指针的方法,一个指针指向非零元素的最后一个位置,另一个指针遍历数组,遇到非零元素就和第一个指针指向的元素交换位置,然后第一个指针向后移动一位。
代码如下:
```c
void moveZeroes(int* nums, int numsSize){
int i, j = 0;
for(i = 0; i < numsSize; i++){
if(nums[i] != 0){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
j++;
}
}
}
```
时间复杂度为 O(n),空间复杂度为 O(1)。
阅读全文