n 是十万,你写了两层循环,会超时吗?
考级冲刺 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
读题时把关键条件圈出来。
为什么"看懂样例"比"看懂题面"更可靠?
下一道题,先写三步思路再动手。
把一段代码里的变量名改清楚。
给你最近一段绕的代码加一句注释。
建一个文件夹整理你做过的题。
翻出三个月前的一段代码看看。
数数你这三年做了多少道题。
给自己打打气,写一句话。
参考答案(家长):尤其注意数据范围、边界说明、输出格式。
参考答案(家长):一百亿次,必然超时,要换算法。
参考答案(家长):坚持一段时间,会明显感到写代码变顺了。
参考答案(家长):样例是具体的,能验证你的理解对不对。
参考答案(家长):注释写"为什么",不写"是什么"。
参考答案(家长):改完再读,逻辑会清晰很多。
参考答案(家长):多数人会发现能改进的地方 —— 这就是进步的证据。
参考答案(家长):按方法或来源分子文件夹,好找是关键。
参考答案(家长):写下来贴在桌前,卡住的时候看一眼。
参考答案(家长):数目不重要,坚持下来才重要。
数据规模一百万,能用两层循环吗?
把这张对照表抄下来。
开一个一百万大小的整型数组要多少内存?
区间 [l, r] 的和怎么算?
给 [l, r] 全加 k 怎么操作?
有序数组里找两数之和等于目标值,怎么用双指针?
求最长的和不超过 k 的连续子数组(元素为正)。
怎么按第一个关键字升序、第二个降序排?
写一个查找第一个大于等于目标值的位置。
什么样的题适合?
参考答案(家长):考场上先看数据范围,思路能少走很多弯路。
参考答案(家长):不能,一万亿次运算远超时限。
参考答案(家长):前缀和 r 减去前缀和 l 减 1。
参考答案(家长):约 4 MB,开在函数里会爆栈。
参考答案(家长):一头一尾,和大了右指针左移,和小了左指针右移。
参考答案(家长):差分数组 l 处加 k,r 加 1 处减 k。
参考答案(家长):写一个比较函数,先比第一个,相等时反着比第二个。
参考答案(家长):右扩到超了就左收,过程中记录最大长度。
参考答案(家长):问"最大的最小值"或"最小的最大值"这类。
参考答案(家长):找到就往左继续缩,最后左边界就是答案。
写一个递归求斐波那契,再说说它慢在哪。
给斐波那契加上记忆化。
用它数一数网格里有几块连通区域。
求迷宫里从起点到终点的最少步数。
写一个全排列。
给你的搜索加一个剪枝。
把一行用空格分开的数字读进数组。
定义一个学生结构体并按成绩排序。
把这五条写在你的检查表上。
给每项打个熟练度分。
参考答案(家长):从指数降到线性,差距立刻显现。
参考答案(家长):大量重复计算,加个记忆化就快了。
参考答案(家长):广搜第一次到达终点时的层数就是答案。
参考答案(家长):遇到没访问过的格子就搜一遍并计数。
参考答案(家长):剪得越早,效果越好。
参考答案(家长):标记已用、递归、然后取消标记。
参考答案(家长):包含学号、姓名、成绩,比较函数按成绩降序。
参考答案(家长):按行读入后再切分,注意行尾的换行符。
参考答案(家长):低于及格的那几项,明天开始专门练。
参考答案(家长):交卷前照着过一遍,能救回不少分。