问题描述
给定一个整数数组,给定一个值K,这个值在原数组中一定存在,要求把数组中小于K的元素放到数组的左边,大于K的元素放到数组的右边,等于K的元素放到数组的中间
解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
function nethFlag (arr, num) { let less = -1 let greater = arr.length let i = 0
while (i < greater) { if (arr[i] < num) { [arr[i], arr[less + 1]] = [arr[less + 1], arr[i]] i++ less++ } else if (arr[i] === num) { i++ } else { [arr[i], arr[greater - 1]] = [arr[greater - 1], arr[i]] greater-- } } return arr }
|