- 最少时间复杂度求数组中第k大的数,写code
- 快速选择(见指南)
- 去除字符串S1中的字符使得最终的字符串S2不包含’ab’和’c’,写code
- 逻辑题目,按照题意写即可
- 长度为N的序列Sequence=abc….Z,问有多少不同的二叉树形态中序遍历是这个,写递推公式
- $2^N$ 种,从 a 开始,往后加入一个新的字符,之前的每一个种可能都可以作为下一个的左子树或者根节点,也就是每个可能在都会变成两种可能,故可得递推公式
- 给定整数n和m,问能不能找出整数x,使得x以后的所有整数都可以由整数n和m组合而成
- 这个组合的具体意思不明确,如果是相加的话,我感觉是不能找到这个 x
- 中序遍历二叉树,利用O(1)空间统计遍历的每个节点的层次,写bug free的code
- 存每一层的数目至少需要一个数组,应该是额外空间是 O(1),那么在递归的时候加上一个标志,每次访问全局变量更新即可
- 排序二叉树转双向链表
- 递归,每次访问叶子节点进行链表构建
- 一个运算序列只有+、*、数字,计算运算序列的结果
- 堆栈,优先级测试
- 100亿数字,怎么统计前100大的?
- 最大堆,下移,优先队列,用数组模拟
- 实现 java.util.List 中的基础功能;
- 基本逻辑
- 实现栈,使得 添加、删除、max 操作的复杂度为 O(1)
- max stack
- 选取任意数据结构实现添加、删除、随机返回三个功能,分析复杂度;
- 基本功
- 用数组实现队列,各操作的复杂度分析。
- 基本操作逻辑
- 两棵树相加——对应位置两棵树都有值则相加,对应位置只有一棵树有值则取该值;
- 递归,两个参数
- 用速度不同的指针可以判断链表中是否有环,问两速度满足怎样的关系可以保证发现环;
- 一个一次走俩,一个一次走一个
- 如何在语料中寻找频繁出现的字串,分析复杂度
- trie树;
- 中缀表达式转逆波兰表达式,逆波兰表达式求值;
- 堆栈即可
- 数据解压缩,3(a4(ab)) -> aababababaababababaabababab;
- 堆栈即可
- 二叉树的文件存储
- 存前序+中序
- 实现快速排序、归并排序、堆排序,各排序算法复杂度分析;
- 基本功
- 实现KMP,解释原理;
- 这个暂时不弄
- 迷宫的深度搜索、广度搜索;
- 基本算法描述
- 写 find 函数,在目标串中匹配模式串(要考虑中文字符的情况)
- 找子字符串
- 数列中找第 k 大的数字(与快排或堆排序有关)
- 快速选择
- 一维数组,swap 其中的几对数字(每个数字只属于一次 swap 操作),实现查找(与二分有关);
- 一个有序数组,其中一个数字发生变异,但不知道变异后会不会影响整体序,如何实现查找;
- 二维数组,每行递增,每列递增
- 实现查找;
- 求第 k 大的数;
- 任意交换其中的两数,发现并恢复;
- 寻找字符串中第一个只出现一次的字符;
- 哈希 遍历一次
- 统计数列中的逆序对(归并排序有关);
- 最长公共子串(动态规划有关);
- LCS
- 最大子序列和,允许交换一次的最大子序列和;
- 给定数组,寻找 next big(堆排序有关);
- 一维有序数组,经过循环位移后,最小的数出现在数列中间
- 如果原数组严格递增,如何找这个最小数;
- 如果原数组严格递增或递减,如何找这个最小数;
- 如果原数组非严格递增或递减,如何找这个最小数;
- 二分变种
- 数组可能是递增、递减、递减后递增、递增后递减四种情况,递增递减都是非严格的,如果有转折点,返回转折点的值,否则返回-1;
- 二分来判断
- 有序数组寻找和为某数的一对数字;
- 2 SUM 哈希
- 墙里能装多少水;
- 左右动态规划
- 打印螺旋数组;
- 基本逻辑操作
- 打印组合数;
- 递归,自顶向下
- 字符数组,统计指定区间内的回文串个数。
- 中间来找,manacher
- 一道概率题,54张牌,平均分成三堆,大小王在同一堆的概率?(17/53)
- 3* C(18,2) / C(54,2)
- 问了一个概率题 54张牌,分成6份,每份9张牌,大小王在一起的概率(我算错了,他告诉我是 8/53)
- 6 * C(9,2) / C(54, 2)
- 什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。我的回答是小顶堆,建立小顶堆的时间复杂度是O(nlogn),之后每次插入删除的时间复杂度是O(logn)。
- 链表逆序,翻转链表
- 基本功
- 描述Dijkstra最短路径算法
- 基本功
- 一道组合数学题。10盏灯,灭三盏,两头的必须亮着,不能灭掉相邻的两盏灯,问组合数?C(6,3) = 20 。
- 字符串转整数
- 基本功
- 有25匹马 ,5个跑道,一次只能比5匹马,得到跑得最快的前3,至少需要比几次?7次
- 一个文件中包含超大的N个数,求最大的K个数?
- 最小堆,时间复杂度为N log k
- 一个数据流中,如何采样得到100个数,保证采样得到的100个数是随机的?蓄水池抽样算法
- 平衡二叉树是什么
- 基本功
- 给了一个链表,第1个结点标号为1,把链表中标号在M到N区间的部分反转
- 基本功
评论列表
文章目录