马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
922. 按奇偶排序数组 II
给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。
对数组举行排序,以便当 nums 为奇数时,i 也是 奇数 ;当 nums 为偶数时, i 也是 偶数 。
你可以返回 任何满足上述条件的数组作为答案 。
示例 1:
- <strong>输入:</strong>nums = [4,2,5,7]
- <strong>输出:</strong>[4,5,2,7]
- <strong>解释:</strong>[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。
复制代码 示例 2:
- <strong>输入:</strong>nums = [2,3]
- <strong>输出:</strong>[2,3]
复制代码 提示:
- 2 <= nums.length <= 2 * 104
- nums.length 是偶数
- nums 中一半是偶数
- 0 <= nums <= 1000
- class Solution {
- public:
- vector<int> sortArrayByParityII(vector<int>& nums) {
- int n = nums.size();
- int j = 1;
- for(int i = 0; i < n; i+=2)
- {
- if(nums[i]%2==1)
- {
- while(nums[j]%2==1)
- j+=2;
- swap(nums[i],nums[j]);
- }
- }
- return nums;
- }
- };
复制代码- class Solution {
- public:
- vector<int> sortArrayByParityII(vector<int>& nums) {
- int left = 0, right = 1;
- while(left < nums.size() && right < nums.size())
- {
- while(left < nums.size() && nums[left] % 2 == 0) left += 2;
- while(right < nums.size() && nums[right] % 2 == 1) right += 2;
- if(left < nums.size() && right < nums.size())
- swap(nums[left], nums[right]);
- }
- return nums;
- }
- };
复制代码
|