双指针秒解:原地移动零元素

📅 2026/7/12 7:52:21
双指针秒解:原地移动零元素
LeetCode283给定一个数组nums编写一个函数将所有0移动到数组的末尾同时保持非零元素的相对顺序。请注意必须在不复制数组的情况下原地对数组进行操作。示例 1:输入:nums [0,1,0,3,12]输出:[1,3,12,0,0]示例 2:输入:nums [0]输出:[0]Python代码双指针下同class Solution: def moveZeroes(self, nums: List[int]) - None: Do not return anything, modify nums in-place instead. slow 0 fast 0 while fast len(nums): if nums[fast] ! 0: nums[slow], nums[fast] nums[fast], nums[slow] slow 1 fast 1Java代码class Solution { public void moveZeroes(int[] nums) { int slow 0; int fast 0; int temp 0; while(fast nums.length){ if(nums[fast] ! 0){ temp nums[slow]; nums[slow] nums[fast]; nums[fast] temp; slow; } fast; } } }C代码class Solution { public: void moveZeroes(vectorint nums) { int slow 0; int fast 0; int temp 0; while(fast nums.size()){ if(nums[fast] ! 0){ temp nums[slow]; nums[slow] nums[fast]; nums[fast] temp; slow; } fast; } } };