【双指针】 offer 21 调整数组顺序使奇数位于偶数前面

    技术2022-07-16  88

    题目

    难度简单26输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

    思路

    设置双指针,分别位于头和尾。 头指针遇到奇数继续前进,遇到偶数停 尾指针遇到偶数继续前进,遇到奇数停 然后交换位置

    代码

    public int[] exchange(int[] nums) { int left = 0; int right = nums.length-1; while(left<right){ //注意在过程也要有左右的判断,因为在退出循环的前一次中会有加减后 //left>right的情况 while(left<right&&nums[left]%2==1){ left++; } while(left<right&&nums[right]%2==0){ right--; } int tmp = nums[left]; nums[left] = nums[right]; nums[right] = tmp; } return nums; }
    Processed: 0.009, SQL: 9