/**
* 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
* 你可以返回满足此条件的任何数组作为答案。
* 示例:
* 输入:[3,1,2,4]
* 输出:[2,4,3,1]
* 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
*
* 解题思路:
* 1.双指针 left,right,left从左向右移动,right从右向左移动,
* 2.nums[i]%2==0,与left交换
* 3.当nums[i]%2!==0,与right交换,直到nums[i]%2==0,停止与right交换
* 如果此时nums[i]%2==0,如上与left交换;
*/
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortArrayByParity = function(nums) {
var n = nums.length;
var left=0,right=n-1;
for(var i=0;i<=right;i++){
while(i<=right&&nums[i]%2!=0){
swap(nums,right,i);
right--;
}
if(nums[i]%2==0){
swap(nums,left,i);
left++;
}
}
return nums;
};
function swap(nums,a,b){
var temp;
temp = nums[b];
nums[b] = nums[a];
nums[a] = temp;
}
var nums = [6,3,1,2,4,9,1,2];
console.log(sortArrayByParity(nums));
leetcode算法刷题记录之按奇偶排序数组
最新推荐文章于 2024-10-25 16:30:40 发布