最外层for循环里面,像下面这样把i的条件设为i >= 0也可行呀,为什么遍历的时候要用i > 0呢
来源:5-7 最大区间(2)

慕容2486063
2019-04-02
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
}
写回答
2回答
-
想个昵称真难
2019-04-08
其实你写 i >=0 也是可以,只不过你 i =0 的时候,第二轮循环是不会执行的。j < 0 这个条件是怎么都不会满足的,既然 i = 0 这种情况第二轮循环是不会执行那,那我为啥不省点功夫写成 i > 0 呢?毕竟既能少写一个 = 号,也能使外层循环少跑一轮循环。
10 -
快乐动起来呀
2019-04-03
我有点没理解 i>0就可以了,为什么要i>=0呢?
012020-07-19
相似问题
没做条件,也是全部遍历
回答 3