题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题
给定一批查询日志,数量为n。其中,有的查询出现了多于n/3次,请在线性时间内,找到所有满足条件的查询。
分析
如果初次遇到这个问题,我们会有什么样的思路呢?
采用hashmap进行计数,O(n)的空间,O(n)的时间进行排序,O(nlogn)快速选择算法,这个也可以做到O(n)...
分类:
其他好文 时间:
2014-07-18 22:18:42
阅读次数:
279
给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。 例如: [4, 94, 9, 14, 1] 拼接之后,所得最大数为:9944141
分析
我们可以将两个数字,作为一个整体,进行比较。然后一次排序,就得到了结果。给定例子:5,54,56
比较5和54,实际上就是比较545和554哪个大
比较5和56,实际上就是比较556和565哪个大
...
分类:
其他好文 时间:
2014-07-18 21:24:46
阅读次数:
229
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题
给定一个数组,数组中只包含0和1。请找到一个最长的子序列,其中0和1的数量是相同的。
例1:10101010 结果就是其本身。
例2:1101000 结果是110100
请大家展开自己的思路。
分析
这个题目,看起来比较简单,一些同学可能认为题目的描述符合动态规划的...
分类:
其他好文 时间:
2014-07-18 21:21:58
阅读次数:
233
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”
排序只有1,2,3三个元素的数组,不能统计1,2,3的个数。
分析:这个题目,尽管也是排序,但却不能使用快速排序的方法。只有三个元素,如果时间复杂度仍旧是O(nlogn),显然不是最好的。那就可以使用线性的排序算法,例如计数排序,可是题目中要求,不能够对1,2,3进行统计个数。那该如何处理呢?请大家看下...
分类:
其他好文 时间:
2014-07-17 19:34:43
阅读次数:
291
一个小岛,表示为一个N×N的方格,从(0,0)到(N-1, N-1),一个人站在岛上,位置(x, y),他可以上下左右走,一步一个格子,他选择上下左右的可能性是一样的。当他走出小岛,就意味着死亡。假设他要走n步,请问他死亡的概率有多大?请写出求解代码。
分析
遇到这样的问题,就试着走几步好了。当一个人在(x,y)的时候,假设他此时,死亡的概率为p(x,y,n),然后,他有四种选择,而且...
分类:
其他好文 时间:
2014-07-17 19:19:22
阅读次数:
253
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋通过最少的次数确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋
方法分析
看到这个题目,最保险的方法就是一层一层试验,但这样只需要一个鸡蛋就可以了。我们现在有两个鸡蛋,完全可以用有更快...
分类:
其他好文 时间:
2014-07-16 17:11:30
阅读次数:
221
给定一个数组A,其中有一个位置被称为Magic Index,含义是:如果i是Magic Index,则A[i] = i。假设A中的元素递增有序、且不重复,请给出方法,找到这个Magic
Index。更进一步,当A中允许有重复的元素,该怎么办呢?
没有重复元素的情况
一些同学在遇到这个题目的时候,往往会觉得比较简单。扫描一遍,不就ok了么?O(n)的。很简单呀。可是,大家要注意到...
分类:
其他好文 时间:
2014-07-16 16:23:25
阅读次数:
272
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
分析:思路和数据的快速排序一样,都需要找到一个pivot元素、或者节点。然后将数组或者单向链表划分为两个部分,然后递归分别快排。
针对数组进行快排的时候,交换交换不同位置的数值,在分而治之完成之后,数据就是排序好的。那么单向链表是什么样的情况呢?除了交换节点值之外,是否有其他更好的方法呢?可以修改指针,不进行数值...
分类:
其他好文 时间:
2014-07-14 20:48:18
阅读次数:
280
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
给一个整数数组a[],
找到其中包含最多连续数的子集,比如给:15, 7, 12, 6, 14, 13, 9, 11,则返回: 5:[11, 12, 13, 14, 15] 。
分析:最简单的方法是sort然后scan一遍,但是要
o(nlgn) , 有什么 O(n) 的方法吗?网上有人用map或set来...
分类:
其他好文 时间:
2014-07-14 16:47:17
阅读次数:
226
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题给定字符串,可以通过插入字符,使其变为回文。求最少插入字符的数量。例如:
1. ab最少插入1个字符,变为*b*ab
2. aa最少插入0个字符
3. abcd最少插入3个字符,*dcb*abcd
分析:根据回文串的定义,很容易获得递归思路,首先比较第一个和最后一个字符,相等则插入个数等于中间的...
分类:
其他好文 时间:
2014-07-13 00:03:08
阅读次数:
334