# 283 Move Zeroes (有圖)

運用 es6 的 寫 swap / 有用到排序的作法,兩兩比較決定是否交換 (Bubble Sort) / for 裡面也可以 i--

LeetCode

Given an array nums, 
write a function to move all 0's to the end of it while maintaining 
the relative order of the non-zero elements.

input: 數字陣列
output: 把 0 都移到最後面
Example:

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

You must do this in-place without making a copy of the array.
Minimize the total number of operations.
*/

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */

var moveZeroes = function(nums) {}

如何解

本來想說 sort 有沒有解,例如

後來發現不可行 (太天真)。所以這題其實就是用 Two pointer 解最快啦

若 nums[ind] == 0 那就 ind ++;

若 nums[ind] != 0 那就跟 nums[pointer 交換位置],然後 ind ++, pointer ++

重要的是要寫一個交換的 function

完整程式碼

另一個解法

學到什麼

  • 第一個是交換 function,可以用 es6 的新語法

  • two pointer 概念

Last updated

Was this helpful?