Skip to the content.

Algorithm.Question

排序

  1. js 实现一个函数,完成超过范围的两个大整数相加功能
  2. js 如何实现数组扁平化?
  3. js 如何实现数组去重?
  4. 如何求数组的最大值和最小值?
  5. 如何求两个数的最大公约数?
  6. 如何求两个数的最小公倍数?
  7. 实现 IndexOf 方法?
  8. 判断一个字符串是否为回文字符串?
  9. 实现一个累加函数的功能比如 sum(1,2,3)(2).valueOf()
  10. 使用 reduce 方法实现 forEach、map、filter
  11. 设计一个简单的任务队列,要求分别在 1,3,4 秒后打印出 “1”, “2”, “3”
  12. 如何查找一篇英文文章中出现频率最高的单词?

常见面试智力题总结

  1. 时针与分针夹角度数问题?
  2. 用 3 升,5 升杯子怎么量出 4 升水?
  3. 四个药罐中有一个浑浊的药罐,浑浊的每片药片都比其他三个干净的药罐多一克,如何只用一次天平找出浑浊的药罐?
  4. 四张卡片,卡片正面是数字,反面是字母。现在桌上四张卡片,状态为 a 1 b 2 现在我想要证明 a 的反面必然是 1 ,我只能翻两张牌,我翻哪两张?
  5. 赛马问题,25 匹马,5 个赛道,最少几次能选出最快的三匹马?
  6. 五队夫妇参加聚会,每个人不能和自己的配偶握手,只能最多和他人握手一次。A 问了其他人,发现每个人的握手次数都不同,那么 A 的配偶握手了几次?
  7. 你只能带行走 60 公里的油,只能在起始点加油,如何穿过 80 公里的沙漠?
  8. 烧一根不均匀的绳要用一个小时,如何用它来判断一个小时十五分钟?
  9. 有 7 克、2 克砝码各一个,天平一只,如何只用这些物品三次将 140 克的盐分成 50、90 克各一份?
  10. 有一辆火车以每小时 15 公里的速度离开洛杉矶直奔纽约,另一辆火车以第 小时 20 公里的速度从纽约开往洛杉矶。如果有一只鸟,以外 30 公里每小时的速度和 两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?
  11. 你有两个罐子,50 个红色弹球,50 个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
  12. 假设你有 8 个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?
  13. 在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?
  14. 他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?
  15. 有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(就是说筐上的标签都是错的)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
  16. 一个班级 60%喜欢足球,70%喜欢篮球,80%喜欢排球,问即三种球都喜欢占比有多少?
  17. 五只鸡五天能下五个蛋,一百天下一百个蛋需要多少只鸡?

剑指 offer 思路总结

  1. 二维数组中的查找
  2. 替换空格
  3. 从尾到头打印链表
  4. 重建二叉树
  5. 用两个栈实现队列
  6. 旋转数组的最小数字
  7. 斐波那契数列
  8. 跳台阶
  9. 变态跳台阶
  10. 矩形覆盖
  11. 二进制中 1 的个数
  12. 数值的整数次方
  13. 调整数组顺序使奇数位于偶数前面
  14. 链表中倒数第 k 个节点
  15. 反转链表
  16. 合并两个排序的链表
  17. 树的子结构
  18. 二叉树的镜像
  19. 顺时针打印矩阵
  20. 定义一个栈,实现 min 函数
  21. 栈的压入弹出
  22. 从上往下打印二叉树
  23. 二叉搜索树的后序遍历
  24. 二叉树中和为某一值路径
  25. 复杂链表的复制
  26. 二叉搜索树与双向链表
  27. 字符串的排列
  28. 数组中出现次数超过一半的数字
  29. 最小的 K 个数
  30. 连续子数组的最大和
  31. 整数中 1 出现的次数(待深入理解)
  32. 把数组排成最小的数
  33. 丑数(待深入理解)
  34. 第一个只出现一次的字符
  35. 数组中的逆序对
  36. 两个链表的第一个公共结点
  37. 数字在排序数组中出现的次数
  38. 二叉树的深度
  39. 平衡二叉树
  40. 数组中只出现一次的数字
  41. 和为 S 的连续正数序列
  42. 和为 S 的两个数字
  43. 左旋转字符串
  44. 翻转单词顺序列
  45. 扑克牌的顺子
  46. 圆圈中最后剩下的数字(约瑟夫环问题)
  47. 1+2+3+…+n
  48. 不用加减乘除做加法
  49. 把字符串转换成整数。
  50. 数组中重复的数字
  51. 构建乘积数组
  52. 正则表达式的匹配
  53. 表示数值的字符串
  54. 字符流中第一个不重复的字符
  55. 链表中环的入口结点
  56. 删除链表中重复的结点
  57. 二叉树的下一个结点
  58. 对称二叉树
  59. 按之字形顺序打印二叉树(待深入理解)
  60. 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
  61. 序列化二叉树(待深入理解)
  62. 二叉搜索树的第 K 个节点
  63. 数据流中的中位数(待深入理解)
  64. 滑动窗口中的最大值(待深入理解)
  65. 矩阵中的路径(待深入理解)
  66. 机器人的运动范围(待深入理解)

相关算法题

  1. 明星问题
  2. 正负数组求和