1. 程式人生 > >【LeetCode】移動零

【LeetCode】移動零

文章目錄

題目

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

示例

輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0]

說明

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

簡析

  • i表示當前已經移好位的非零數
  • j遍歷尋找非零數
  • 遍歷完後補全i後面的零

程式碼

public void moveZeroes(int[] nums) {
        int i = 0;
        int j = 0;
        while(j < nums.length) {
            if
(nums[j] != 0) { nums[i] = nums[j]; i++; } j++; } while(i < nums.length) { nums[i++] = 0; } }