Java实现奇偶数按顺序交换

给定一个包含偶数和奇数的整数数组,按出现的顺序交换所有的偶数和奇数对。

img

需要稍微思考一下,用了空间O(n),时间O(n)的解法,看看行不行

private void evenOddSwap(int[] nums){
        if(Objects.isNull(nums) || nums.length == 0)
            return;
        int n = nums.length;
        Queue<Integer> queue = new LinkedList<>();
        for(int i = 0; i < n; i++){
            //原理:奇数加奇数等于偶数,偶数加偶数等于偶数,一个奇数一个偶数则取出交换
            //所有进入queue的,要么全是奇数,要么全是偶数
            if(queue.isEmpty() || (nums[i]+nums[queue.peek()])%2==0){
                queue.offer(i);
            }else{
                swap(nums,i,queue.poll());
            }
        }
    }

    private void swap(int[] nums, int i, int j){
        int num = nums[i];
        nums[i] = nums[j];
        nums[j] = num;
    }