中国企业网站模板,凡科网免费网站域名注册,自己做短视频网站,如东做网站的公司给定一个非负整数数组 nums#xff0c; nums 中一半整数是 奇数 #xff0c;一半整数是 偶数 。
对数组进行排序#xff0c;以便当 nums[i] 为奇数时#xff0c;i 也是 奇数 #xff1b;当 nums[i] 为偶数时#xff0c; i 也是 偶数 。
你可以返回 任何满足上述条件的…给定一个非负整数数组 nums nums 中一半整数是 奇数 一半整数是 偶数 。
对数组进行排序以便当 nums[i] 为奇数时i 也是 奇数 当 nums[i] 为偶数时 i 也是 偶数 。
你可以返回 任何满足上述条件的数组作为答案 。
示例 1 输入nums [4,2,5,7]
输出[4,5,2,7]
解释[4,7,2,5][2,5,4,7][2,7,4,5] 也会被接受。示例 2 输入nums [2,3]
输出[2,3]提示
2 nums.length 2 * 104nums.length 是偶数nums 中一半是偶数0 nums[i] 1000
进阶可以不使用额外空间解决问题吗
我的解答
class Solution {public int[] sortArrayByParityII(int[] nums) {int o_index 0,q_index 1;int len nums.length - 1;while(o_index len - 1){// 如果当前偶数位上的数为奇数if(nums[o_index] %2 ! 0){while(q_index len){// 找到当前奇数位上位偶数的位置if(nums[q_index] %2 0){// 交换2者位置int temp nums[o_index];nums[o_index] nums[q_index];nums[q_index] temp;q_index 2;break;}q_index 2;}}o_index 2;}return nums;}
}