一、题目地址
https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/
二、具体代码
/**
* @param {number[]} nums
* @return {number[]}
*/
//首尾双指针法
//时间复杂度:O(N)
//时间复杂度:O(1)
function swap(nums, left, right) {
let tempNum = nums[left];
nums[left] = nums[right];
nums[right] = tempNum;
}
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;
}
swap(nums, left++, right++);
}
return nums;
};
/**
* @param {number[]} nums
* @return {number[]}
*/
// 快慢指针法
// 时间复杂度O(n)
// 空间复杂度O(1)
function swap(nums, left, right) {
let tempNum = nums[left];
nums[left] = nums[right];
nums[right] = tempNum;
}
var exchange = function(nums) {
let slow = 0;
let fast = 0;
while(fast < nums.length) {
// 如果fast指针指向的num为奇数时
if((nums[fast] % 2) !== 0) {
swap(nums, slow, fast);
slow++;
}
fast++;
}
return nums;
};
三、补充链接
四、补充部分
关注公众号:【深漂程序员小庄】:
内含丰富的学习资源和面试经验(不限前端、java),还有学习交流群可加,并且还有各大厂大佬可一起交流学习,一起进步~添加小庄微信,回复【加群】,可加入互联网技术交流群: