题目
给定一组数组,要求把负数都移向右边,同时保证正数的相对顺序
- 双指针,右指针向右遍历,如果右指针指向的数大于0,那么和左指针数交换,左指针向右移动1位
function move_negatives_to_end(arr) {
left = 0;
right = 0;
while (right < arr.length) {
if (arr[right] >= 0) {
[arr[left], arr[right]] = [arr[right], arr[left]];
left += 1;
}
right += 1;
}
return arr;
}
const arr = [1, 2, 3, -4, -5, 6, 7, -8, 9];
console.log(move_negatives_to_end(arr));