原题地址:http://www.cnblogs.com/x1957/p/3373994.html题意:Given
an array of integers, every element appearstwiceexcept for one. Find that single
one.要求:线性时间复...
分类:
编程语言 时间:
2014-05-10 05:22:27
阅读次数:
408
这个题比刚才那个更难。如果没做过上一个,这个简直是无情。
先想一个笨笨的解法,怎样确定一个矩形呢?找一个左上角,然后每行的看能延伸到什么位置,注意随着行数的增加,列数是只能变短,不能变长。想一下也知道这种方法的复杂度有多高,超时无疑。
如果刚好做了这个求柱形的题目,会不会收到启发呢。将矩阵中的每一个1都看做是一个小的正方形,在每一列,连续的1就构成了一个柱体,求一连串这样的柱体围成的最...
分类:
其他好文 时间:
2014-05-10 04:35:34
阅读次数:
286
Jump Game Given an array of non-negative
integers, you are initially positioned at the first index of the array. Each
element in the array represents ...
分类:
其他好文 时间:
2014-05-10 03:13:50
阅读次数:
481
原题地址:http://oj.leetcode.com/problems/single-number-ii/题意:Given
an array of integers, every element appearsthreetimes except for one. Find that
single ...
分类:
编程语言 时间:
2014-05-10 03:01:41
阅读次数:
413
很难的问题,数组线性时间。
属于我之前说的解法的借助辅助空间。给定两个柱子,他们之间的面积由什么确定呢?没错,他们之间的距离和他们之间最矮的那个柱子的高度。我们并不知道这个柱子在什么位置,所以...
分类:
其他好文 时间:
2014-05-09 22:57:18
阅读次数:
404
题目:
Clone an undirected graph. Each node in the graph contains a label and
a list of its neighbors.
OJ's undirected graph serialization:
Nodes are labeled uniquely.
We use # as a separat...
分类:
其他好文 时间:
2014-05-09 22:31:35
阅读次数:
353
要求子集,有非常现成的方法。N个数,子集的个数是2^N,每个元素都有在集合中和不在集合中两种状态,这些状态用[0,pow(2,N)]中每个数来穷举,如果这个数中的第i位为1,说明当前集合中包含源数组中的第i个数。
至于有没有重复的元素,大部分有重复元素的问题,都可以借助一个vis集合,里面存放所有已经求得的集合或者其他形式的解,只有少数题目会超时,哪些问题具体的说。
class Solutio...
分类:
其他好文 时间:
2014-05-09 21:56:02
阅读次数:
244
这道题还挺难的。递归的思路是好想,不过不出意料的超时了。
dp嘛。想一下i-1的编码加上第i个编码会怎样,如果加上的这个编码不是0,那么这一位可以独立解码,那长为i的解码个数至少是长为i-1的解码个数。还有呢?如果i-1位是1,可以把i-1位和i位同时解码出来,还有呢?如果i-1位是2而i位是0-6中的数字,也可以同时解码这两位编码。满足这个条件的时候,当前长度的解码个数还要加上i-2时的解码个...
分类:
其他好文 时间:
2014-05-09 21:53:04
阅读次数:
226
字符串的好题。题干解释的非常复杂,一下让人不知所措了。
这道题到底是什么意思呢?最终的结果是把一个字符串中字母的顺序打乱了,让你判断一个字符串能不能由另一个字符串打乱得到。那打乱这个过程是怎么做的呢,很简单,给你一个字符串,你必须先找一个点把它砍成两半,你可以通过交换这两半的顺序来打乱源字符串的顺序,也就是在两半中的字符与另一半中所有字符的相对顺序是统一的。对于每一半,都可以重复上面的过程。
...
分类:
其他好文 时间:
2014-05-09 20:59:46
阅读次数:
239
partition是快排的准备工作,被用在其他很多问题上,比如找满足某个条件的数之类的。
在数组中,可以一头一尾的指针依次置换,这样是不能保证源数组中的相对顺序的。链表中就不一样了,没办法拿到尾部的指针,只能从头部往后找,找到第一不满足partition条件的节点,即较大的数,然后再往后找较小数,把较小数的节点移到前面来,因此跟数组的做法还有个区别,链表的partition只有一个指针在做实际的...
分类:
其他好文 时间:
2014-05-09 20:48:28
阅读次数:
252