LeetCode #283 移動零
阿新 • • 發佈:2018-12-16
思路: 將0移至陣列末尾==使非零元素前進; 快慢指標,慢指標指向nums[0],快指標遍歷陣列檢索非零元素,將其拷貝至慢指標指向的位置,慢指標前進,重複至遍歷結束,然後慢指標開始遍歷陣列,填零。 程式碼:給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 必須在原陣列上操作,不能拷貝額外的陣列。 儘量減少操作次數。
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function(nums) { if(nums==null&&nums.length==0){ return; } var i=0; for(var j=0;j<nums.length;j++){ if(nums[j]!==0){ nums[i]=nums[j]; i++; } } for(;i<nums.length;i++){ nums[i]=0; } };