![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
待字闺中
文章平均质量分 74
fangjian1204
这个作者很懒,什么都没留下…
展开
-
编程之美之快速寻找满足条件的两个数
快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的zhi原创 2014-07-14 16:10:05 · 714 阅读 · 0 评论 -
待字闺中之单链表和之恋
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题:两个单链表(singly linked list),每一个节点里面一个0-9的数字,输入就相当于两个大数了。然后返回这两个数的和(一个新list)。这两个输入的list长度相等。 要求是:不用递归;要求算法在最好的情况下,只遍历两个list一次 ,最差的情况下两遍分析:如果链表表示的数是从原创 2014-07-11 14:48:09 · 975 阅读 · 0 评论 -
待字闺中之兄弟数字分析
给定一个数X,他的兄弟数Y定义为:是由X中的数字组合而成,并且Y是大于X的数中最小的。例如,38276的兄弟数字为38627。给定X,求Y。分析:这个题目当然有暴力的方法,列出所有的排列组合,然后然后找到大于X中,最小的Y。即,找到兄弟数字。那有没有更好的方法呢?不想对所有情况进行穷举,就要想办法,尽可能缩小要处理的范围,一般的思路,从右边开始,两两交换,查看是否可以找到Y,最开始原创 2014-07-30 14:05:45 · 1744 阅读 · 0 评论 -
待字闺中之鸡蛋挺住体
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋通过最少的次数确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋方法分析看到这个题目,最保险的方法就是一层一层试验,但这样只需要一个鸡蛋就可以了。我们现在有两个鸡蛋,完全可以用有更快原创 2014-07-15 19:28:13 · 933 阅读 · 0 评论 -
待字闺中之interleave字符串分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”3个字符串a,b,c。判断c是否是a和b的interleave,也就是c中应该有a,b中所有字 符,并且c中字符顺序和a,b中一样。比如,1. a = "ef" b = "gh" c = "egfh" return true;2. a = "ef" b = "gh" c = "ehgf" return原创 2014-07-21 15:58:21 · 1143 阅读 · 0 评论 -
待字闺中之子序列分析
原题给定长度为n的整数数列:a0,a1,..,an-1,以及整数S。这个数列会有连续的子序列的整数总和大于S的,求这些数列中,最小的长度。分析如果只是像题目这样的描述,没有强调正数,可以采用O(n^2)的方法。具体代码如下:int subSeqWithNegative(vector& data,int sum){ int i,j,length = data.si原创 2014-09-05 21:23:25 · 1116 阅读 · 0 评论 -
待字闺中之最长等差数列分析
原题给定未排序的数组,请给出方法找到最长的等差数列。分析题目描述比较简单,但是有一个问题我们需要首先搞清楚:等差数列中的数字,是否要和原始数组中的顺序一致。题目中,并没有说明,这个就需要大家在面试的过程中和面试官进行交流。我们在这里对两种情况都进行讨论保证数字的顺序等差数列是要求相邻两个元素之间的差是相同的。那我们可以记录下来数组中任意两个数的差,并且记录下原创 2014-09-06 08:44:53 · 1268 阅读 · 0 评论 -
待字闺中之删除字符分析
删除字符串中的“b”和“ac”,需要满足如下的条件:1. 字符串只能遍历一次2. 不能够使用额外的空间例如:1. acbac ==> ""2. aaac ==> aa3. ababac ==> aa4. bbbbd ==> d进一步思考:如何处理aaccac呢,需要做哪些改变呢?分析首先要明白从字符串中删除某些字符该如原创 2014-09-06 10:31:16 · 1351 阅读 · 0 评论 -
待字闺中之最大乘积分析
原题一根绳子,长度为n米。将其切成几段,每一段的长度都是整数。请给出一种切法,使得切成的各段绳子之间的乘积是最大的。注意,最少要切一下的。分析这个题目如何一步一步的分析呢?不管切几段,总有第一段,第二段…等等。第一段的长度有哪些选择呢?可以是1、2、3...一直到n-1(至少要切一下),我们用max_prod(n)表示长度为n的绳子的切法中,乘积最大的值。那么:1. 当原创 2014-09-06 15:50:18 · 1214 阅读 · 0 评论 -
待字闺中之快排单向链表;leetcode之Sort List
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”分析:思路和数据的快速排序一样,都需要找到一个pivot元素、或者节点。然后将数组或者单向链表划分为两个部分,然后递归分别快排。针对数组进行快排的时候,交换交换不同位置的数值,在分而治之完成之后,数据就是排序好的。那么单向链表是什么样的情况呢?除了交换节点值之外,是否有其他更好的方法呢?可以修改指针,不进行数值原创 2014-07-14 14:10:22 · 1335 阅读 · 0 评论 -
剑指offer之寻找丑数,待字闺中之序列生成分析
题目来源:剑指offer之寻找丑数 与 待字闺中之序列生成分析两个题目其实是同一个问题,所有放在一起,算是总结一下,题目如下:给定一个表达式2^i*2^j,其中i,j为非负整数。请找到一种方法,生成如下序列:2^0 * 5^0 = 12^1 * 5^0 = 22^2 * 5^0 = 42^0 * 5^1 = 52^3 * 5^0 = 82^1 * 5^1 = 102原创 2014-08-06 14:32:44 · 931 阅读 · 0 评论 -
待字闺中之最多连续数的子集
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”给一个整数数组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 11:36:11 · 829 阅读 · 0 评论 -
待字闺中之正数数组内和为指定数字的总数
求正数数组内和为指定数字的合并总数比如[5, 5, 10, 2, 3] 合并值为 15 : 有4种 : (5 + 10, 5 + 10, 5 + 5 + 2 + 3, 10 + 2 + 3)分析:有的时候,一个题目不能够立刻想到比较优化的想法,就可以先找到一个解决方案,然后根据方案的不足进行优化。而且这个时候,逆转一下思路,便会柳暗花明。由递归到动态规划,不就是如此么?我们原创 2014-08-05 15:07:53 · 1083 阅读 · 0 评论 -
最少插入字符分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题给定字符串,可以通过插入字符,使其变为回文。求最少插入字符的数量。例如:1. ab最少插入1个字符,变为*b*ab2. aa最少插入0个字符3. abcd最少插入3个字符,*dcb*abcd分析:根据回文串的定义,很容易获得递归思路,首先比较第一个和最后一个字符,相等则插入个数等于中间的原创 2014-07-10 15:52:51 · 1000 阅读 · 0 评论 -
分词问题分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词。例如,字段为{hello,world},字符串为hellohelloworld,则可以拆分为hello,hello,world,都是字典中的单词。思想:最直接的思路就是递归,我们考虑每一个前缀,是否在字典中?如果在,则递归处理剩下的字串;如果不再,原创 2014-07-10 13:58:59 · 1155 阅读 · 0 评论 -
待字闺中之此起彼伏分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中” 有这样一个数组A,大小为n,相邻元素差的绝对值都是1.如: A={4,5,6,5,6,7,8,9,10,9}。 现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?分析:最直接的就是遍历,访问每一个元素,并且进行比较。这是任何一个、没有任何特点的数组,都可以采用的方法。也就是,原创 2014-07-29 13:40:56 · 992 阅读 · 0 评论 -
待字闺中之Magic Index 分析
给定一个数组A,其中有一个位置被称为Magic Index,含义是:如果i是Magic Index,则A[i] = i。假设A中的元素递增有序、且不重复,请给出方法,找到这个Magic Index。更进一步,当A中允许有重复的元素,该怎么办呢?没有重复元素的情况一些同学在遇到这个题目的时候,往往会觉得比较简单。扫描一遍,不就ok了么?O(n)的。很简单呀。可是,大家要注意到原创 2014-07-16 13:58:57 · 784 阅读 · 0 评论 -
待字闺中之相差甚远面试题分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题给定一个数组,我们可以找到两个不相交的、并且是连续的子数组A和B,A中的数字和为sum(A), B中的元素和为sum(B)。找到这样的A和B,满足sum(A) - sum(B)的绝对值是最大的。 例如:[2, -1 -2, 1, -4, 2, 8]划分为A=[-1, -2, 1, -4],原创 2014-07-16 15:50:28 · 1150 阅读 · 0 评论 -
待字闺中之死亡小岛分析
一个小岛,表示为一个N×N的方格,从(0,0)到(N-1, N-1),一个人站在岛上,位置(x, y),他可以上下左右走,一步一个格子,他选择上下左右的可能性是一样的。当他走出小岛,就意味着死亡。假设他要走n步,请问他死亡的概率有多大?请写出求解代码。分析遇到这样的问题,就试着走几步好了。当一个人在(x,y)的时候,假设他此时,死亡的概率为p(x,y,n),然后,他有四种选择,而且原创 2014-07-17 16:08:58 · 889 阅读 · 0 评论 -
待字闺中之相伴一生分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题给定一个数组,数组中只包含0和1。请找到一个最长的子序列,其中0和1的数量是相同的。例1:10101010 结果就是其本身。例2:1101000 结果是110100请大家展开自己的思路。分析这个题目,看起来比较简单,一些同学可能认为题目的描述符合动态规划的原创 2014-07-16 18:49:08 · 1031 阅读 · 0 评论 -
待字闺中之巧妙排序分析:
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中” 排序只有1,2,3三个元素的数组,不能统计1,2,3的个数。分析:这个题目,尽管也是排序,但却不能使用快速排序的方法。只有三个元素,如果时间复杂度仍旧是O(nlogn),显然不是最好的。那就可以使用线性的排序算法,例如计数排序,可是题目中要求,不能够对1,2,3进行统计个数。那该如何处理呢?请大家看下原创 2014-07-17 15:02:20 · 905 阅读 · 0 评论 -
待字闺中之又见Google之星分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题给定一批查询日志,数量为n。其中,有的查询出现了多于n/3次,请在线性时间内,找到所有满足条件的查询。分析如果初次遇到这个问题,我们会有什么样的思路呢?采用hashmap进行计数,O(n)的空间,O(n)的时间进行排序,O(nlogn)快速选择算法,这个也可以做到O(n)原创 2014-07-16 16:38:42 · 954 阅读 · 0 评论 -
待字闺中之构造最大数分析
给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。 例如: [4, 94, 9, 14, 1] 拼接之后,所得最大数为:9944141分析我们可以将两个数字,作为一个整体,进行比较。然后一次排序,就得到了结果。给定例子:5,54,56比较5和54,实际上就是比较545和554哪个大比较5和56,实际上就是比较556和565哪个大原创 2014-07-16 18:06:58 · 966 阅读 · 0 评论 -
待字闺中之相差最大分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”给定无序数组A,在线性时间内找到i和j,j>i,并且保证A[j]-A[i]是最大的。这个题目是比较简单的。很直接的,对于每一个A[j],如果知道前面的元素中最小的元素min,则此时相差最大为A[j]-min。则,假设有一个数组M,M[j]表示[0,j-1]中最小的元素。这个遍历一边A,就可以完成构造M。再遍历一边数原创 2014-07-21 16:28:16 · 938 阅读 · 0 评论 -
leetcode之Largest Rectangle in Histogram、Maximal Rectanglex;待字闺中之最大矩形分析
题目一:Largest Rectangle in Histogram 参考博客int largestRectangleArea(vector &height){ height.push_back(0);//加入一个最小高度,用于清空最后栈中的所有数据 int length = height.size(),i = 0,maxArea = 0; stack stackIndex;原创 2014-07-21 14:42:00 · 1424 阅读 · 0 评论 -
待字闺中之数组统计分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?这个题目,是有一定技巧的。技巧是需要慢慢积累,待经验多了之后,可以灵感或者直觉,就产生了技巧。如原创 2014-07-21 15:17:04 · 1166 阅读 · 0 评论 -
待字闺中之树的高度分析
有一个棵树,不一定是二叉树,有n个节点,编号为0到n-1。有一个数组A,数组的索引为0到n-1,数组的值A[i]表示节点i的父节点的id,根节点的父节点id为-1。给定数组A,求得树的高度。 分析这个题目我们首先把数组写出来,然后进一步分析,就很明了了,如下例子: 333-1201234根据题意:节点0,1,2的父节点为3节点3是根节点节点4的父节点为2原创 2014-07-21 16:19:23 · 881 阅读 · 0 评论 -
待字闺中之逆序分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中” 一个整数,可以表示为二进制的形式,请给出尽可能多的方法对二进制进行逆序操作。 例如:10000110 11011000的逆序为 00011011 01100001分析:题目中说是一个整数,对它的二进制进行逆序。并不是一个01字符串,或者01的数组。那么我们该如何解决这个问题呢?方法还是比较多的,有的中规中矩、原创 2014-07-24 15:43:03 · 1197 阅读 · 0 评论 -
LIS问题分析
题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号“待字闺中”原题这个LIS问题,可不是Longest Increasing Subsequence,而是Largest Independent Set,含义如下:给定一棵二叉树,找到满足如下条件的最大节点集合:集合中的任意两个节点之间,都没有边。如下图:LIS大小为5,为{10,40,60,70,8原创 2014-07-10 17:01:09 · 1181 阅读 · 0 评论 -
待字闺中之四个数的和
盒子中有n张卡片,上面的数字分别为k1,k2,...,kn。你有4次机会,每抽一次,记录下卡片上的数字,再将卡片放回盒子中。如果4个数字的和等于m。则你就赢得游戏,否则就是输。直觉上,赢的可能性太低了。请你给出程序,判断是否有赢的可能性。尽量提高方法的效率。分析:这个题目,和之前Google的一个概率的题目是类似的,当然解决的方法也是类似的,思路大家可以找找前面的题目,不再赘述。这个题目其原创 2014-08-08 14:20:43 · 1018 阅读 · 0 评论