雙指針 --- leedcode 283 移動零

題目

給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。

示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:

必須在原數組上操作,不能拷貝額外的數組。
儘量減少操作次數。

解答

  • 雙指針 i、j
  • i 遍歷整個數組
  • 上nums[i] != 0 時,將nums[j] = nums[i], 並且 j++
  • 最後,i 遍歷完後,把 j 以後剩餘的位置賦值爲 0
var moveZeroes = function(nums) {
    let j = 0;
    for(let i = 0; i < nums.length;i++){
        if(nums[i] != 0) {
            nums[j] = nums[i];
            j++;
        }
    }
    while(j <= nums.length -1) {
        nums[j] = 0;
        j++;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章