剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(双指针)
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
示例:
输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。
提示:
0 <= nums.length <= 500000 <= nums[i] <= 10000
1 class Solution { 2 public: 3 vector<int> exchange(vector<int>& nums) { 4 int left = 0; 5 int right = nums.size() - 1; 6 while (left < right) { 7 // 左边找偶数 8 while (left < right && (nums[left] % 2) == 1) { 9 left++; 10 } 11 // 右边找奇数 12 while (left < right && (nums[right] % 2) == 0) { 13 right--; 14 } 15 // 奇偶交换顺序 16 swap(nums[left], nums[right]); 17 } 18 return nums; 19 } 20 };
浙公网安备 33010602011771号