給定一個數組?nums
,編寫一個函數將所有?0
?移動到數組的末尾,同時保持非零元素的相對順序。
請注意?,必須在不復制數組的情況下原地對數組進行操作。
283. 移動零 - 力扣(LeetCode)
思路:
快慢指針,fast每次前進1,代表遍歷數組的進度;slow計數所有不為零的數,也是最后一個非零數應該在的數組下標
每次當前下標的數不為0,就將快慢指針下標數交換位置
public class Solution {public void MoveZeroes(int[] nums) {int fast = 0;int slow = 0;while(fast < nums.Length){if(nums[fast] != 0){int temp = nums[fast];nums[fast] = nums[slow];nums[slow] = temp;slow++;}fast++;}}
}