
面试算法题
文章平均质量分 92
uzck
这个作者很懒,什么都没留下…
展开
-
并查集的实现
题目描述给定一个没有重复值的整形数组arr,初始时认为arr中每一个数各自都是一个单独的集合。请设计一种叫UnionFind的结构,并提供以下两个操作。boolean isSameSet(int a, int b): 查询a和b这两个数是否属于一个集合void union(int a, int b): 把a所在的集合与b所在的集合合并在一起,原本两个集合各自的元素以后都算作同一个集合[...原创 2020-03-25 16:01:16 · 223 阅读 · 0 评论 -
在两个长度相等的排序数组中找到上中位数
在两个长度相等的排序数组中找到上中位数题目描述给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n个数输入为:arr1 = [1, 2, 3, 4], arr2 = [3, 4, 5, 6],输出为3输入为:arr1 = [0, 1, 2], arr2 = [3, 4...原创 2020-02-13 01:29:34 · 1170 阅读 · 0 评论 -
KMP算法
KMP算法KMP算法用于在文本串S内查找模式串P的出现位置 时间复杂度为O(M + N)最大长度表前缀和后缀前缀:除了最后一个字符以外,一个字符串的全部头部组合后缀:除了第一个字符以外,一个字符串的全部尾部集合前缀后缀的最长公共元素长度举例说明,假如模式串为P = "ABCABD"模式串ABCABD最大前缀后缀公共元素长度000120...原创 2020-02-02 11:36:42 · 482 阅读 · 0 评论 -
数组中未出现的最小正整数
数组中未出现的最小正整数题目来源《程序员代码面试指南》第八章题目描述给定一个无序数组arr,找到数组中未出现的最小正整数arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5[要求]时间复杂度为O(N)O(N)O(N),空间复杂度为O(1)O(1)O(1)思路理想情况:一个N长度的有序数组存放[1,2,...,N]这样的数组,要找出缺少的最小正...原创 2020-01-30 16:45:46 · 608 阅读 · 0 评论