给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。
时间: 2023-03-28 16:01:12 浏览: 188
js代码-给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
好的,这是一个关于编程的问题。可以使用双指针的方法,一个指针指向当前已经处理好的非零元素的最后一个位置,另一个指针向后扫描,遇到非零元素就将其与第一个指针指向的位置交换,然后第一个指针向后移动一位。这样,所有的非零元素都被移到了数组的前面,而后面的位置都是。代码实现可以参考如下:
void moveZeroes(int* nums, int numsSize){
int i, j = ;
for (i = ; i < numsSize; i++) {
if (nums[i] != ) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
j++;
}
}
}
阅读全文