Algorithm.Question
排序
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 堆排序
- 基数排序
- 快速排序相对于其他排序效率更高的原因
- 系统自带排序实现
- 稳定性
- 排序面试题目总结
- 树
- 二叉树相关性质
- 满二叉树
- 完全二叉树
- 平衡二叉查找树(AVL)
- B-树
- B+树
- 数据库索引
- 红黑树
- Huffman 树
- 二叉查找树
- 求解二叉树中两个节点的最近公共祖先节点
- 链表
- 反转单向链表
- 动态规划
- 爬楼梯问题
- 递归方法分析
- 备忘录方法
- 迭代法
- 经典笔试题
- js 实现一个函数,完成超过范围的两个大整数相加功能
- js 如何实现数组扁平化?
- js 如何实现数组去重?
- 如何求数组的最大值和最小值?
- 如何求两个数的最大公约数?
- 如何求两个数的最小公倍数?
- 实现 IndexOf 方法?
- 判断一个字符串是否为回文字符串?
- 实现一个累加函数的功能比如 sum(1,2,3)(2).valueOf()
- 使用 reduce 方法实现 forEach、map、filter
- 设计一个简单的任务队列,要求分别在 1,3,4 秒后打印出 “1”, “2”, “3”
- 如何查找一篇英文文章中出现频率最高的单词?
常见面试智力题总结
- 时针与分针夹角度数问题?
- 用 3 升,5 升杯子怎么量出 4 升水?
- 四个药罐中有一个浑浊的药罐,浑浊的每片药片都比其他三个干净的药罐多一克,如何只用一次天平找出浑浊的药罐?
- 四张卡片,卡片正面是数字,反面是字母。现在桌上四张卡片,状态为 a 1 b 2 现在我想要证明 a 的反面必然是 1 ,我只能翻两张牌,我翻哪两张?
- 赛马问题,25 匹马,5 个赛道,最少几次能选出最快的三匹马?
- 五队夫妇参加聚会,每个人不能和自己的配偶握手,只能最多和他人握手一次。A 问了其他人,发现每个人的握手次数都不同,那么 A 的配偶握手了几次?
- 你只能带行走 60 公里的油,只能在起始点加油,如何穿过 80 公里的沙漠?
- 烧一根不均匀的绳要用一个小时,如何用它来判断一个小时十五分钟?
- 有 7 克、2 克砝码各一个,天平一只,如何只用这些物品三次将 140 克的盐分成 50、90 克各一份?
- 有一辆火车以每小时 15 公里的速度离开洛杉矶直奔纽约,另一辆火车以第 小时 20 公里的速度从纽约开往洛杉矶。如果有一只鸟,以外 30 公里每小时的速度和 两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?
- 你有两个罐子,50 个红色弹球,50 个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
- 假设你有 8 个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?
- 在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?
- 他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?
- 有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(就是说筐上的标签都是错的)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
- 一个班级 60%喜欢足球,70%喜欢篮球,80%喜欢排球,问即三种球都喜欢占比有多少?
- 五只鸡五天能下五个蛋,一百天下一百个蛋需要多少只鸡?
剑指 offer 思路总结
- 二维数组中的查找
- 替换空格
- 从尾到头打印链表
- 重建二叉树
- 用两个栈实现队列
- 旋转数组的最小数字
- 斐波那契数列
- 跳台阶
- 变态跳台阶
- 矩形覆盖
- 二进制中 1 的个数
- 数值的整数次方
- 调整数组顺序使奇数位于偶数前面
- 链表中倒数第 k 个节点
- 反转链表
- 合并两个排序的链表
- 树的子结构
- 二叉树的镜像
- 顺时针打印矩阵
- 定义一个栈,实现 min 函数
- 栈的压入弹出
- 从上往下打印二叉树
- 二叉搜索树的后序遍历
- 二叉树中和为某一值路径
- 复杂链表的复制
- 二叉搜索树与双向链表
- 字符串的排列
- 数组中出现次数超过一半的数字
- 最小的 K 个数
- 连续子数组的最大和
- 整数中 1 出现的次数(待深入理解)
- 把数组排成最小的数
- 丑数(待深入理解)
- 第一个只出现一次的字符
- 数组中的逆序对
- 两个链表的第一个公共结点
- 数字在排序数组中出现的次数
- 二叉树的深度
- 平衡二叉树
- 数组中只出现一次的数字
- 和为 S 的连续正数序列
- 和为 S 的两个数字
- 左旋转字符串
- 翻转单词顺序列
- 扑克牌的顺子
- 圆圈中最后剩下的数字(约瑟夫环问题)
- 1+2+3+…+n
- 不用加减乘除做加法
- 把字符串转换成整数。
- 数组中重复的数字
- 构建乘积数组
- 正则表达式的匹配
- 表示数值的字符串
- 字符流中第一个不重复的字符
- 链表中环的入口结点
- 删除链表中重复的结点
- 二叉树的下一个结点
- 对称二叉树
- 按之字形顺序打印二叉树(待深入理解)
- 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
- 序列化二叉树(待深入理解)
- 二叉搜索树的第 K 个节点
- 数据流中的中位数(待深入理解)
- 滑动窗口中的最大值(待深入理解)
- 矩阵中的路径(待深入理解)
- 机器人的运动范围(待深入理解)
相关算法题
- 明星问题
- 正负数组求和