没做条件,也是全部遍历
来源:5-5 第K个最大值(2)
_玲
2019-03-06
老师,您输出的位置,是不是放的靠外了呢?那样返回的话,也是全部遍历呢。
export default (arr, k) => {
let len = arr.length - 1
for (let i = len, tmp; i > len - k; i--) {
for (let j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
tmp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = tmp
}
}
//加条件
if (arr.length - i === k) {
return arr[i]
}
}
}
写回答
3回答
-
qq_孑然妒火_bHU789
2019-08-10
i > len - k
第二行有这个条件 循环会自动截止掉
加了if语句是不是 画蛇添足了?
10 -
布衣小酱
2019-03-23
这个条件没必要吧,最外层的for循环有个终止条件,会把循环终止掉
i > len - k
00 -
快乐动起来呀
2019-03-06
优秀,真是举一反三了,服气。快,把代码提交到issue,奖励大大的有
032020-02-04
相似问题