目录

  1. 手撕代码
  2. 其他算法题

手撕代码

  1. 给定一个数字数组,建立哈夫曼树,返回哈夫曼树的头指针
  2. 最长公共连续子序列
  3. 手写一个排序算法吧,要不就快排吧
  4. 去掉字符串中的空格空格
  5. 最长回文字符串
  6. 链表合并
  7. [0, n), n个数,范围[0, n-1], 求是否有重复方法
  8. 求第k大的数的方法以及各自的复杂度
  9. 当有相同元素时,求第k大的元素的方法(类似快排,手撕)
  10. 给你一个数组,再给你几对数,这几对数只能够同时出现或者不同时出现,求拿出k个数的可能性(true or false)(手撕,dfs标号+dp)
  11. 实现一个买票系统:实现买票,退票,检票。给一个小时,手撕,文件流+map搞一下就行了,API之类的可以百度。
  12. 数据流,如何获取中位数,复杂度
  13. 一到一百万的素数,怎么快速求
  14. 有一堆数,再给你很多对数,每对数都在同一个组,求一共有多少组数
  15. 有很多蜡烛,每根蜡烛1个小时,求15分钟怎么计时
  16. 十六进制转十进制
  17. 1/x + 1/y = 1/n
    求最小的n,使得对数超过1000
  18. 如何求前100大的数
  19. 栈实现队列,队列实现栈
  20. 手撕:求一个集合的所有子集,递归实现,非递归实现
  21. 去除包含4的数字,求一个数字是第几个数,比如5是第四个数(数位dp)
  22. 有一个楼梯,一共有n层,可以走a步,也可以走b步,问最高能走到哪里?(dp,O(n))。增加一个条件,有一次条件可以回退一半,比如本来在第8层,可以有一次机会直接到第4层。(两次dp,O(n))
  23. 一个数组,里面大多数都是成对的,只有两个数没有成对,求这两个数(异或搞一下,把数组分成两组)
  24. 求一个栈的pop序是否合法。
  25. int to string,string to int。
  26. 反转链表
  27. 大数相乘
  28. char *s1, const char *s2,删除s1中s2出现过的字符
  29. 删除单项链表中重复的节点 (1 2 2 3 3 9) -> (1 2 3 9)
  30. 求二叉树的深度
  31. 单链表判环
  32. 判断一个数是不是回文数
  33. 求一个数组的最长连续子序列
  34. 有两个链表,怎么求交点?
  35. 一万个数,求前100大的数
  36. 假设有一个排好序的数组,数字都是两个两个出现的,只有一个是单独出现的,求这个数
  37. 链表翻转(递归,非递归)
  38. 判断一颗树是不是二叉搜索树
  39. 给出1000000条数据,每次请求查询时怎么最快,要想好多种方法红黑树,hash然后一直问有没有其他的
  40. 之字形打印二叉树
  41. 两个有序数组求交集
  42. 无序数组求交集 hash
  43. 二分查找中位数 复杂度分析
  44. memcpy 函数 怎么实现的,有没有比memcpy更快的
  45. 判断一个点是不是在三角形内
  46. 求每一个元素右边第一个最大元素
  47. 单调栈解法,分析O(N)
  48. 出一个连续数组,找出一个连续子集中所有元素中最小元乘以加和最大值
  49. 求一个非递减数组中,绝对值不同的个数 O(N ) O(1)空间
  50. 字符串翻转
  51. 叙述一下洗牌算法
  52. 怎么判断一个数是二的倍数,怎么求一个数中有几个1
  53. 手写strcpy函数
  54. 已知最大数为M的递增子序列求所有和为s的子集合
  55. 两个大的数据集装入的数据是无重复的,求交集
  56. kmp
  57. 多重背包,0/1背包
  58. 字符串转double的代码
  59. 写点代码写了构造函数、复制构造、复制操作、移动构造、移动操作。
  60. 二叉排序树的插入、删除,删除没写完
  61. 给定前序遍历ABC后序遍历CBA,求中序遍历是什么,画出来两种情况
  62. 前序、中序和后续遍历,递归和非递归
  63. 50 亿个整数中, 找一个确定的数? 有内存限制, 并且无序
  64. 给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c
  65. 给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最少的次数给判断是几层楼能把求摔碎?
  66. n个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为O(N),在面试官提醒下写出来了,用栈+栈底指针
  67. 讲述一下堆排序
  68. 归并排序
  69. 给定一个链表,输入n,删除从结尾开始的第 n 个节点
  70. 给定一个数组,删除数组连续重复的元素,生成一个新数组
  71. 给定一个无序数列,输出该序列中出现频率前 k 多的数
  72. 八数码问题
  73. 求两个链表的交点;(tips:①判环,②求环的入口,③如果两个链表都有环,判断入口是否相同,共5种拓扑结构)
  74. 二维平面有n个点,求一条直线,使最多的点落在该直线上,三维呢?
  75. 不同排序各有优势让我实现一个通用排序库,
  76. 快排与归并的优劣势
  77. 给两个字符串A,B,判断B是否是A的子序列
  78. .给两个字符串A,B,找到在B中所有字母在A中出现的下标
  79. 给一个字符串A,N次询问,每次问字符串B是否是A的子序列
  80. 一个有环的单链表,如何找到环结点
  81. 给一个字符串,将字符串中的单词从后向前翻转,手写代码
  82. A[50]50个数,B[49]49个数,数字取值范围[0,49],找出A中多出来的一个数字
  83. 一个平面,100个点,求一条直线,经过的点最多,给个思路就行
  84. 给你一个50亿的整数让你找出中位数.
  85. 最大连续子数组的和
  86. 1、给1亿个数,求字典序第K(k<1亿)大的数(字典树)
  87. 2、链表拆分,翻转,合并 如 1->2->3->4->5->6 变为1->6->2->5->4->3
  88. 树转单链表(前序)
  89. 旋转数组查找
  90. 求后面第一个比当前数大的数
  91. 数组两两元素求异或,求最大的异或值(01字典树)
  92. n个有序链表,合并成一个
  93. 字符串A,B,在A中删除B中出现过的字符
  94. 二叉树知道后序中序求前序遍历
  95. 100万数据找top k,判断一个数是不是2的幂,两个单链表有公共节点,找出第一个。
  96. 一颗二叉搜索树,找出树中的第k大节点
  97. 将字符串转化为整型
  98. 给你两个有序数组,找中位数
  99. m个有序数组合并后输出前K个数
  100. 二叉树的最小公共结点
  101. m个有序数组合并后输出第k个数(二分)
  102. 手写代码,计算一个整数二进制中0的个数。
  103. 有一支股票,知道每天的价格,本金一定,只准买卖一次,问如何做到收益最大。
  104. 给定几个互不相同的数字组成的一个字符串,输出同样由这几个数字组成的,字典序恰好比它大1的字符串。
  105. (s,n)表示字符串s反复出现n次;s->t表示s去掉若干字符之后能成为t;给定S1与S2,求最大的m使得S1->(S2,m)
  106. 给定一些正整数(1,3,4,5,7),输入一个n,输出最少用多少个给定的数能加出n来。
  107. 一个整数序列,A和B两个人轮流取数,每次只能取最左的数或最右的数,两个人都想使自己的和尽可能大,问给定序列以后A和B能取到的和各是多少。
  108. 给定字符串s,输出第一个满足:在s中恰好出现3次的字母。保证存在这样的字母且字符串都是小写字母组成。
  109. 手撕代码,二叉树两个节点最长路径
  110. 两个有序数组合并,n个有序数组合并
  111. int数组求最大子串和、二维、三维、四维呢

其他算法题

  1. 有一户家庭,生了两个娃,其中一个是女孩,另外一个是女孩的概率
  2. 一副扑克牌,怎么实现随机打乱?
  3. 假设有两个数组,各有十万数量级的整数,如何求交集?
  4. 个人项目的benchmark性能测试结果如何
  5. 有100个弹珠,双方轮流拿,每个人只能拿1~5个,无法拿的人输,必胜解法。
  6. 求char a数组中有的元素和char b数组中没有的元素,放到char c数组。这里我忘记把char字符转成unsigned char类型。
  7. windows消息机制知道吗?系统怎么知道 。。MFC消息机制
  8. 1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水。答案是10只老鼠1周,解法是十进制转二进制
  9. 桶中取球排列组合问题
  10. 40亿个QQ号,4GB的空间,O(1)的时间,这个时候新来了一个QQ号,判断这个QQ号是否存在
  11. 个非常拥堵的路口,让你分析拥挤原因,并且提供解决方案
  12. 高德地图是怎么知道高速路哪里堵车了,并且还能标记出来准确的路段? 提出你的设想.
  13. 如果让你统计出这个城市当中的交通信息,比如说那几个路口每天多少车左转,多少车右转,你怎么做?
  14. MFC消息怎么定义 x 太久没写忘记了,就记得个声明和绑定函数
  15. 做个数学题吧,一副扑克牌取5张,出现顺子的概率,大小王能任意当成什么牌
  16. 8个球找重量不一样的一个怎么称
  17. 36匹马6个跑道无秒表选前三,最少跑几轮