这里主要记录dz学习计概A以来收获到的好题,用来考前回顾或者之后回顾。
Section 0:小细节
这里因为dz作为初学者,难免有一些细节性的东西掌握不牢固,用来考前回顾,以免因为这个时间复杂度没达标而吃大亏。
注:虽然里面有很多库运用的推荐,但是依旧建议自己能够具体实现。
0.1 求素数
这里直接调用 <math.h> 库的 sqrt。dz之前因为这个被卡过时间,无语。。。
int isPrime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if(n % i == 0) {
return 0;
}
}
return 1;
}
0.2 排序
这里直接建议用
0.3 二分查找
二分查找分为三种,1. 找是否有这个值,2. 找下界,3.找上界。这里推荐用
更多细节可以看这个博客,很有参考意义。
Section 1: 递归
感觉做了作业题,递归的样式归来归去也就那个样子,重要的是每个状态如何表示。
1.1 正整数任意进制转换
这个不是典型的递归,但是加深了我对任意进制如何转换的理解。复习的时候重点理解如何在 O(n) 内做到任意进制转换。
1.2 计算字符串的相似度
注意到每步的操作,这里主要是要能想到用BFS来做搜索。