移動零

給定一個數組 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) {
    nums.forEach((ele,index) => {
        if(ele === 0){
            nums.push(ele)
            nums.splice(index, 1); 
        }
    })
};
//粗暴的當前數組可執行

var moveZeroes = function(nums) {
    let zeroNum = 0
    for(let i=0;i<nums.length;i++){
        if(nums[i]==0){//若是nums[i]=0,zeroNum個數加一
            zeroNum++;
        }else if(zeroNum!=0){//若是nums[i]不等於0,將nums[i]跟前zeroNum個交換,而且將nums[i]賦值爲0
            nums[i-zeroNum]=nums[i];  
            nums[i]=0;
        }
    }
};

各位有什麼好的騷操做?code

相關文章
相關標籤/搜索