没做条件,也是全部遍历

来源: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语句是不是 画蛇添足了?

1
0

布衣小酱

2019-03-23

这个条件没必要吧,最外层的for循环有个终止条件,会把循环终止掉

i > len - k
0
0

快乐动起来呀

2019-03-06

优秀,真是举一反三了,服气。快,把代码提交到issue,奖励大大的有

0
3
_小_七_
回复
qq_眼睛想旅行_CRX124
当然会,在外面的已经遍历完了才到外面
2020-02-04
共3条回复

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 393 问题

查看课程