徐州IT兼职网站开发,西充县企业网站建设,门户网站建设与运行情况良好,自主设计和创建网站给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的相对顺序。
请注意 #xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1:
输入: nums [0,1,0,3,12]
输出: [1,3,12,0,0]示例 2:
输入: nums [0]
输出: […给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。
请注意 必须在不复制数组的情况下原地对数组进行操作。 示例 1:
输入: nums [0,1,0,3,12]
输出: [1,3,12,0,0]示例 2:
输入: nums [0]
输出: [0]
class Solution {
public:void moveZeroes(vectorint nums) {for(int dest-1,cur0;curnums.size();cur){if(nums[cur]){swap(nums[dest],nums[cur]);}}}
};
思路
数组划分数组分块
利用数组下标充当指针
两个指针的作用
cur:从左往右扫描数组遍历
dest:已处理的区间内非0元素的最后一个位置。
类似快排