shaojianjian 发表于 2021-2-13 16:58:00

划红线的部分没看懂。。

我个人感觉答案应该是2,3,6,7,9
不是很明白为什么只能有三次

Daniel_Zhang 发表于 2021-2-13 17:34:59

本帖最后由 Daniel_Zhang 于 2021-2-13 17:39 编辑

是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打印出来的就是 2,因为它是移除了 1 以后,list 里面最小的

所以 a b d 不选,直接选 c

接着讲解

因为长度变了,变成了 5,但是 for 循环的读取并不会因为你修改了长度而改变,即你第一次读取的是 第 0 位,即使你改变了 list 的长度,下一层 for 循环依旧是读第 1 位的

然后下一次移除了 2 因为它是第二小的,打印的是 3 因为 1,2 移除之后,3最小

之所以只会打印 3 个,如上所述,for 循环不会改变,在执行完第三层后,list 的长度只剩下 3 了,已经读取到了第 2 位(从 0 起),也就不能再读取了(达到了 list 结尾处),自然就退出了

此时结果就是 2, 3, 6

shaojianjian 发表于 2021-2-13 18:18:30

Daniel_Zhang 发表于 2021-2-13 17:34
是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打 ...

谢谢
页: [1]
查看完整版本: 划红线的部分没看懂。。