假的条件 && i++,i 会加吗?
考级冲刺 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
if(x=0) 和 if(x==0) 有什么不同?
忘写跳出会发生什么?
为什么建议 if 后面总是加大括号?
想"跳过偶数",该用哪个?
内层跳出后,外层会继续吗?
为什么越界比报错更麻烦?
求和前忘记把 sum 设为 0 会怎样?
动手画变量表算一算。
列表格逐轮记录 n 和 s。
参考答案(家长):前者把 x 赋成 0 且条件为假,后者才是判断 x 是否为 0。
参考答案(家长):不会,因为短路了,后半部分根本没执行。
参考答案(家长):能避免配对歧义,也方便以后加语句。
参考答案(家长):会把后面几支的语句也执行一遍,输出多余内容。
参考答案(家长):会。这一点常被考,也常写错。
参考答案(家长):跳过本轮的那个(continue)。
参考答案(家长):结果加在一个随机值上,答案离谱。
参考答案(家长):报错能立刻发现,越界会静悄悄给你错答案。
参考答案(家长):s = 1+2+3+4 = 10。
参考答案(家长):只加了 1、3、5,s = 9。
算清内层各跑了几次。
画出求 3 的阶乘的调用过程。
拿到这类题,第一步该做什么?
看到 mid=(l+r)/2,你会想到什么?
记住这五个位置。
为什么"孤立地看这一行"填不出来?
为什么用小数据验算最有效?
初始值该设成什么最稳妥?
把学过的常识点整理成一页纸。
把这几条背下来。
参考答案(家长):3×(2×(1)),最里层返回 1,逐层乘回去得 6。
参考答案(家长):1+2+3 = 6。
参考答案(家长):二分查找或二分答案。
参考答案(家长):先通读,判断它在实现什么算法,再逐个推空。
参考答案(家长):空的含义由上下文决定,脱离上下文无从判断。
参考答案(家长):知道空爱出现在哪,就能有的放矢。
参考答案(家长):设成数组第一个元素,比设成 0 更稳(有负数时 0 会出错)。
参考答案(家长):小数据能快速跑完,又足以暴露边界错误。
参考答案(家长):这些几乎每次都会以某种形式出现。
参考答案(家长):整理的过程本身就是复习。
三层嵌套循环是什么复杂度?
n 最大 100 和 n 最大 100000,能用的算法一样吗?
读题时把这三样圈出来。
样例过了就一定对吗?
给"求最大值"造四组测试数据。
写完程序,先拿 n=1 试一遍。
什么情况下要警惕溢出?
超时的第一反应该是什么?
为什么要"小"数据?
不会做的题,该交白卷吗?
参考答案(家长):不一样。前者可以两三层循环,后者最多一层或带 log。
参考答案(家长):O(n³)。
参考答案(家长):不一定。样例通常很简单,还要自己想边界情况。
参考答案(家长):养成圈重点的习惯,能少走很多弯路。
参考答案(家长):养成这个习惯能挡掉很多错误。
参考答案(家长):只有一个数、全部相同、最大在开头、最大在末尾。
参考答案(家长):重新看数据范围,判断该用什么复杂度的算法。
参考答案(家长):数据接近或超过 21 亿,或者多个大数相乘时。
参考答案(家长):不该。写个暴力解法往往能拿三到五成分。
参考答案(家长):小数据才能手动算完,大数据看不出哪一步错。