劍指 Offer 21. 調整陣列順序使奇數位於偶數前面

正在奮鬥的java開發渣渣發表於2020-12-19

劍指 Offer 21. 調整陣列順序使奇數位於偶數前面

題目

輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有奇數位於陣列的前半部分,所有偶數位於陣列的後半部分。

示例

輸入:nums = [1,2,3,4]
輸出:[1,3,2,4]
注:[3,1,2,4] 也是正確的答案之一

提示

1 <= nums.length <= 50000
1 <= nums[i] <= 10000

程式碼

可以使用雙指標方法,前後給定義一個變數,前面的變數直到偶數停下來,後面的變數直到奇數停下來,交換,迴圈直到左邊變數大於右邊變數。

class Solution {
    public int[] exchange(int[] nums) {
        int left=0;
        int right=nums.length-1;
        while(left<right){
            if(nums[left]%2!=0){
                left++;continue;
            }
            if(nums[right]%2==0){
                right--;continue;
            }
            if(nums[left]%2==0&&nums[right]%2!=0){
                int a=nums[left];
                nums[left]=nums[right];
                nums[right]=a;
            }
        }
        return nums;
    }
}

相關文章