給定一個數(shù)組 nums晶通,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾,同時保持非零元素的相對順序伦连。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:
必須在原數(shù)組上操作造寝,不能拷貝額外的數(shù)組。
盡量減少操作次數(shù)珊豹。
鏈接:https://leetcode-cn.com/problems/move-zeroes
思路:
- loop, count zero 兩次for循環(huán)
- 開新數(shù)組
- index操作
這里使用第三種思路示意:
func moveZeroes(nums []int) {
j := 0
for i := 0; i < len(nums); i++ {
if nums[i] != 0 {
nums[j] = nums[i]
if j != i {
nums[i] = 0
}
j++
}
}
}