刷題——移動零

題目描述

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

Example:

Input: [0, 1, 0, 3, 12]
Output: [1, 3, 12, 0, 0]

要求:

  1. 不能創建一個新的數組來做操作
  2. 儘量少的操作次數

思路分析

我們用js來編寫這個函數。要求在原數組上操作,可能我們最先想到的是交換元素位置,但是js的數組提供了很多好用的方法,可以直接拿來用;儘量少的操作次數,要求我們在尋0的時候倒序遍歷。
簡單來說,就是從後往前找0,每當找到一個0,就將其從數組中刪除,並向數組的尾部插入一個0。

js代碼

function moveZeroes(arr) {
    for(let i = arr.length - 1; i >= 0; i--){
        if(arr[i] === 0){
            arr.splice(i, 1);
            arr.push(0);
        }
    }
    return arr;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章