划红线的部分没看懂。。
我个人感觉答案应该是2,3,6,7,9不是很明白为什么只能有三次 本帖最后由 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 Daniel_Zhang 发表于 2021-2-13 17:34
是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打 ...
谢谢
页:
[1]