文章分类 -  算法-查找

摘要:获取数组中第k小的元素 这类问题有几种方法: 1. 数组中元素取值范围有限的情况下,适合使用哈希表的方式,一个哈希表长度为取值范围,初始值为0,有一个值取到就加1,然后从最小段开始搜索,直到找到第k小的元素所在的位置。该方法为O(n)的,空间复杂度是O(m),m为取值范围 2. k小的时候,适合构造 阅读全文
posted @ 2020-04-07 18:42 别再闹了 阅读(593) 评论(0) 推荐(0)
摘要:玛雅人的密码 题目描述 玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2= set = new HashSet(); ArrayDeque queue = new ArrayDeque(); while (sc.hasNext()) { int le 阅读全文
posted @ 2020-04-06 23:07 别再闹了 阅读(148) 评论(0) 推荐(0)
摘要:字典序(今日头条2017秋招真题) 给定整数n和m,将1到n的这n个整数按字典序排列之后,求其中的第m个数字。 对于n = 11,m = 4,按字典序排列依次为1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9,因此第4个数字为2。 ​ 输入 输入仅包含两个整数n和m。 样例输入 1 阅读全文
posted @ 2020-04-06 11:14 别再闹了 阅读(150) 评论(0) 推荐(0)
摘要:String Shifting(今日头条2017秋招真题) 题目描述 我们规定对一个字符串的shift操作如下: shift(“ABCD”, 0) = “ABCD” shift(“ABCD”, 1) = “BCDA” shift(“ABCD”, 2) = “CDAB” 换言之, 我们把最左侧的N个字 阅读全文
posted @ 2020-04-06 11:13 别再闹了 阅读(187) 评论(0) 推荐(0)
摘要:异或(今日头条2017秋招真题) 题目描述 给定整数m以及n个数字A1, A2, …, An,将数列A中所有元素两两异或,共能得到n(n 1)/2个结果。请求出这些结果中大于m的有多少个。 ​ 输入 第一行包含两个整数n, m。 第二行给出n个整数A1, A2, …, An。 样例输入 3 10 6 阅读全文
posted @ 2020-04-06 11:11 别再闹了 阅读(167) 评论(0) 推荐(0)
摘要:翻转数组 | 输入 第一行数据是一个整数:n (1≤n≤105),表示数组长度。第二行数据是n个整数a[1], a[2], ..., a[n] (1≤a[i]≤109)。 | 样例输入 | | | | | 输出 输出“yes”,如果存在;否则输出“no”,不用输出引号。 | 样例输出 yes | | 阅读全文
posted @ 2020-03-22 17:05 别再闹了 阅读(83) 评论(0) 推荐(0)
摘要:数据流中的中位数 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 阅读全文
posted @ 2020-03-09 11:00 别再闹了 阅读(162) 评论(0) 推荐(0)
摘要:数字在排序数组中出现的次数 统计一个数字在排序数组中出现的次数。 这道题很简单: 这里只讲一个相关的,就是 布尔表达式的短路判断 : 这道题没涉及到,但是如果将代码中的表达式写成: ,那么, 和`array[i]==k array[i]==k array[i]==k i<length`一定要写在前面 阅读全文
posted @ 2020-03-06 17:57 别再闹了 阅读(47) 评论(0) 推荐(0)
摘要:整数中1出现的次数(从1到n整数中1出现的次数) 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出 阅读全文
posted @ 2020-03-06 09:15 别再闹了 阅读(265) 评论(0) 推荐(0)
摘要:数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路1:使用map保存出现的次数 这种方法从计算复杂度的角 阅读全文
posted @ 2020-03-05 20:52 别再闹了 阅读(72) 评论(0) 推荐(0)
摘要:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 一、暴力法 1. 分析 挨个遍历数组,如果找到就返回 true 2. 代码 public class So 阅读全文
posted @ 2020-02-26 22:30 别再闹了 阅读(81) 评论(0) 推荐(0)