seo推廣騙局百度快照優(yōu)化公司
給定一個(gè)數(shù)組?nums
,編寫一個(gè)函數(shù)將所有?0
?移動(dòng)到數(shù)組的末尾,同時(shí)保持非零元素的相對(duì)順序。
請(qǐng)注意?,必須在不復(fù)制數(shù)組的情況下原地對(duì)數(shù)組進(jìn)行操作。
283. 移動(dòng)零 - 力扣(LeetCode)
思路:
快慢指針,fast每次前進(jìn)1,代表遍歷數(shù)組的進(jìn)度;slow計(jì)數(shù)所有不為零的數(shù),也是最后一個(gè)非零數(shù)應(yīng)該在的數(shù)組下標(biāo)
每次當(dāng)前下標(biāo)的數(shù)不為0,就將快慢指針下標(biāo)數(shù)交換位置
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++;}}
}