leetcode.21 javascript 解法
题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
解法1.
/** * @param {number[]} nums * @return {number[]} */ var exchange = function(nums) { let a_nums = []; let b_nums = []; for(let i = 0;i < nums.length;i++) { if (nums[i] % 2 == 0) { a_nums.push(nums[i]); }else { b_nums.push(nums[i]); } } return b_nums.concat(a_nums); };
解法2.
/** * @param {number[]} nums * @return {number[]} */ var exchange = function(nums) { let left = 0; let right = nums.length - 1; while(left < right) { if(nums[left] % 2 !== 0){ left++; continue; } if(nums[right] % 2 === 0){ right--; continue; } [nums[left],nums[right]] = [nums[right],nums[left]]; } return nums; };