分析网站建设到运营需要多少钱,舆情网站入口,wordpress公式插件,廊坊百度快速排名优化按奇偶排序数组
https://leetcode.cn/problems/sort-array-by-parity/description/
描述
给你一个整数数组 nums#xff0c;将 nums 中的的所有偶数元素移动到数组的前面#xff0c;后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。
示例 1
输入#xff1a;n…按奇偶排序数组
https://leetcode.cn/problems/sort-array-by-parity/description/
描述
给你一个整数数组 nums将 nums 中的的所有偶数元素移动到数组的前面后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。
示例 1
输入nums [3,1,2,4]
输出[2,4,3,1]解释[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
示例 2
输入nums [0]
输出[0]提示
1 nums.length 50000 nums[i] 5000
Typescript 版算法实现 1 ) 方案1: 两次遍历
function sortArrayByParity(nums: number[]): number[] {const n: number nums.length;let index: number 0;const res: number[] new Array(n).fill(0);// 第一次遍历将偶数放入结果数组for (const num of nums) {if (num % 2 0) {res[index] num;}}// 第二次遍历将奇数放入结果数组for (const num of nums) {if (num % 2 1) {res[index] num;}}return res;
}2 ) 方案2: 双指针 一次遍历
function sortArrayByParity(nums: number[]): number[] {const n nums.length;const res new Array(n).fill(0);let left 0, right n - 1;for (const num of nums) {if (num % 2 0) {res[left] num;} else {res[right--] num;}}return res;
};3 ) 方案3: 原地交换
function sortArrayByParity(nums: number[]): number[] {let left 0, right nums.length - 1;while (left right) {while (left right nums[left] % 2 0) {left;}while (left right nums[right] % 2 1) {right--;}if (left right) {const temp nums[left];nums[left] nums[right];nums[right] temp;left;right--;}}return nums;
};