天天看點

283. 移動零題解

  1. 移動零

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

示例:

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

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

說明:

必須在原數組上操作,不能拷貝額外的數組。

盡量減少操作次數。

題解

class Solution {
    public void moveZeroes(int[] nums) {
        int start = 0;
        for(int i=0;i<nums.length;i++){
            if(nums[i] != 0){
                if( i>start){
                    nums[start] = nums[start] ^ nums[i];
                    nums[i] = nums[start] ^ nums[i];
                    nums[start] = nums[start] ^ nums[i];
                }
                start++;
            }
        }
    }
}