void moveZeroes(vector<int>& nums)
时间: 2024-06-14 22:09:03 浏览: 168
数组的去零操作代码
void moveZeroes(vector<int>& nums) 是一个函数,用于将给定的整数数组中的所有零元素移动到数组的末尾,同时保持非零元素的相对顺序不变。
函数的实现思路如下:
1. 定义两个指针:一个指针用于遍历数组中的元素,另一个指针用于记录非零元素的位置。
2. 遍历数组,如果当前元素不为零,则将其移动到非零元素指针所指向的位置,并将非零元素指针向后移动一位。
3. 遍历完成后,将非零元素指针之后的所有元素置为零。
以下是该函数的具体实现代码:
```cpp
void moveZeroes(vector<int>& nums) {
int nonZeroIndex = 0; // 非零元素指针
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != 0) {
nums[nonZeroIndex] = nums[i];
nonZeroIndex++;
}
}
for (int i = nonZeroIndex; i < nums.size(); i++) {
nums[i] = 0;
}
}
```
这样,调用该函数后,原始数组中的所有零元素都会被移动到数组的末尾,而非零元素的相对顺序将保持不变。
阅读全文