数组

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. 快速寻找满足条件的两个数

快速找出一个数组中的两个数字,让这两个数组之和等于一个给定的值,假设这个数组中肯定存在至少一组符合要求的解

6. 大数相加

1. 重建二叉树

2. 分层遍历二叉树

3. 求二叉树深度