原地算法之將數組中的指定元素,移動到數組的尾部

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

示例:函數

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

說明:spa

  1. 必須在原數組上操做,不能拷貝額外的數組。
  2. 儘可能減小操做次數。
 
class Solution { public void moveZeroes(int[] nums) { int index=0;//非零個數
        for(int i=0;i<nums.length;i++){ if(nums[i]!=0){ nums[index++]=nums[i]; } } while(index<nums.length){ nums[index++]=0; } } }

這個和上一篇的從數組中刪除指定元素相似:code

1)定義一個計數標誌,記錄非零元素的個數;blog

2)並將這個計數器做爲移動後順序的下標保存移動後的數據;io

3)最後將下標之後的元素設置爲0class

相關文章
相關標籤/搜索