请稍等 ...
×

采纳答案成功!

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

最外层for循环里面,像下面这样把i的条件设为i >= 0也可行呀,为什么遍历的时候要用i > 0呢

export default (arr) => {
if (arr.length < 2) return 0
let maxNum = 0
for (let i = arr.length - 1; i >= 0; i–) {
for (let j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j + 1]
arr[j + 1] = arr[j]
arr[j] = temp
}
}
if (i < arr.length - 1) {
maxNum = arr[i + 1] - arr[i] > maxNum ? arr[i + 1] - arr[i] : maxNum
}
}
return maxNum
}

正在回答 回答被采纳积分+3

2回答

想个昵称真难 2019-04-08 19:16:54

其实你写 i >=0 也是可以,只不过你 i =0 的时候,第二轮循环是不会执行的。j < 0 这个条件是怎么都不会满足的,既然 i = 0 这种情况第二轮循环是不会执行那,那我为啥不省点功夫写成 i > 0 呢?毕竟既能少写一个 = 号,也能使外层循环少跑一轮循环。

1 回复 有任何疑惑可以回复我~
快乐动起来呀 2019-04-03 23:46:01

我有点没理解 i>0就可以了,为什么要i>=0呢?

0 回复 有任何疑惑可以回复我~
  • 如果 i >= 0, 就不用返回 Math.max(maxNum, arr[1] - arr[0]), 可以直接返回maxNum
    回复 有任何疑惑可以回复我~ 2020-07-19 17:20:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信