数组
1. 排序算法——快速排序
2. 排序算法——冒泡排序
3. 排序算法——插入排序
4. 折半查找/二分查找
5. 求前K大的数
6. 寻找数组中的最大值和最小值
7. AB两个数组,元素去重合并
8. 求数组的子数组之和的最大值
9. 求数组中最长递增子序列
10. 数组循环右移
把一个含有N个元素的数组,循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。
11. 数组分割
有一个无序,元素个数为2n的正整数数组,要求:如何能把这个数组分割成元素个数为n的两个数组,并使两个子数组的和最接近。
字符串
1. 字符串反转
比如: how are you 转换成 you are how
2. 判断是否为ip
3. 字符串包含
一个长字符串a,一个短字符串b,如何判断b中的字符都在a中?
4. 字符串拼接
5. 字符串拷贝
6. 字符串移位包含
字符串s1,s2,判断字符串s2能否被s1循环移位得到的字符串包含。例如,给定s1=‘AABCD’,s2=’CDAA’,则s1向右移动3位变长CDAAB,包含s2
7. 查找文件中字符串总数和位置
8. 字符串转整形,整形转字符串
链表
1. 单链表倒置
2. 单链表相交
3. 链表是否有环
4. 从无头链表中删除节点
数字
1. 斐波那契数列
2. 求二进制中1的数目
3. N的阶乘中0的个数
4. 给定一个十进制正整数N,从1开始到N的所有整数中,出现1的个数。
比如N=2,则1,2中,出现了1个“1”
5. 快速寻找满足条件的两个数
快速找出一个数组中的两个数字,让这两个数组之和等于一个给定的值,假设这个数组中肯定存在至少一组符合要求的解