请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

没做条件,也是全部遍历

老师,您输出的位置,是不是放的靠外了呢?那样返回的话,也是全部遍历呢。

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

3回答

qq_孑然妒火_bHU789 2019-08-10 14:45:30

i > len - k

第二行有这个条件  循环会自动截止掉

加了if语句是不是 画蛇添足了?

1 回复 有任何疑惑可以回复我~
布衣小酱 2019-03-23 11:50:45

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

i > len - k
0 回复 有任何疑惑可以回复我~
快乐动起来呀 2019-03-06 22:17:53

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

0 回复 有任何疑惑可以回复我~
  • 提问者 _玲 #1
    哈哈,为了奖励,早早地提上去了
    回复 有任何疑惑可以回复我~ 2019-03-06 22:20:25
  • qq_眼睛想旅行_CRX124 回复 提问者 _玲 #2
    你好,想问一下两层for外面return,会全部遍历啊?
    回复 有任何疑惑可以回复我~ 2019-06-14 12:04:50
  • 当然会,在外面的已经遍历完了才到外面
    回复 有任何疑惑可以回复我~ 2020-02-04 22:21:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信