记录 1 道算法题
调整数组顺序使奇数在偶数前面
要求:给一个数组,将来里面的奇数都放到左边,偶数放到右边。
这道题非常简单,只需要单指针进行遍历就可以实现,将每一个奇数都放到左边,每放一次,指针往后挪一位。
难度稍微提升一点的同类题可以看这道颜色分类
function exchange(nums) {
let a = 0
for(let i = 0; i < nums.length; i++) {
const n = nums[i]
// 奇数就交换位置,同时更新指针
if (n % 2 !== 0) {
swap(nums, i, a)
a++
}
}
return nums
}
function swap(arr, a, b) {
const t = arr[a]
arr[a] = arr[b]
arr[b] = t
}