leetcode1035
摘要:这道题的思路是,最长公共子序列LCS,典型的DP类型题目。我最怕的类型了。
阅读全文
posted @
2019-04-28 13:23
Sempron2800+
阅读(308)
推荐(0) 编辑
leetcode1034
摘要:这题是什么鬼玩意儿?是我打开方式不对么。。。
阅读全文
posted @
2019-04-28 12:24
Sempron2800+
阅读(157)
推荐(0) 编辑
leetcode971
摘要:参考:https://leetcode.com/problems/flip-binary-tree-to-match-preorder-traversal/discuss/214216/JavaC%2B%2BPython-DFS-Solution
阅读全文
posted @
2019-04-27 17:15
Sempron2800+
阅读(82)
推荐(0) 编辑
leetcode894
摘要:1 class Solution { 2 3 private Map> memo; 4 5 public List allPossibleFBT(int N) { 6 this.memo = new HashMap(); 7 return backtrack(N); 8 } 9 10 ...
阅读全文
posted @
2019-04-27 17:12
Sempron2800+
阅读(110)
推荐(0) 编辑
leetcode966
摘要:1 class Solution(object): 2 def spellchecker(self, wordlist: 'List[str]', queries: 'List[str]') -> 'List[str]': 3 wordlen = len(wordlist) 4 wordict = {}#存原始形式 5 wordi...
阅读全文
posted @
2019-04-24 19:55
Sempron2800+
阅读(144)
推荐(0) 编辑
leetcode969
摘要:从大到小寻找每个数字的位置,将其先移动到第一个位置,再将其移动到其数字应该的位置(index==num-1)。
阅读全文
posted @
2019-04-24 18:42
Sempron2800+
阅读(90)
推荐(0) 编辑
leetcode974
摘要:这道题目描述很清晰,直接两层循环,代码如下: 显然,时间复杂度O(n^2),这样会超时。 因此需要优化,把时间复杂度减少O(n),一般这种类型的题目,都是要从数学角度分析,寻找规律。 先贴代码: 这里比较关键的代码就是13~17行,对于前m项的连加和,模K的余数,如果是第一次出现,则在字典中进行“标
阅读全文
posted @
2019-04-24 12:31
Sempron2800+
阅读(165)
推荐(0) 编辑
New York is 3 hours ahead of California
摘要:New York is 3 hours ahead of California, 纽约时间比加州时间早三个小时, but it does not make California slow. 但加州时间并没有变慢。 Someone graduated at the age of 22, 有人22岁就毕
阅读全文
posted @
2019-04-24 02:33
Sempron2800+
阅读(604)
推荐(0) 编辑
leetcode978
摘要:思路:滑动窗口。 这种线性的程序,再长一倍,问题也不大。不过可读性就比较差了。 简单说一下用到的变量的作用:NeedJudge就是是否需要判断,对于每次滑动窗口的起始位置(i==j),NeedJudge都是False,这样只需要根据起始的两个位置的元素的大小,来确定是凹凸凹型还是凸凹凸型。变量Low
阅读全文
posted @
2019-04-23 22:42
Sempron2800+
阅读(126)
推荐(0) 编辑
leetcode979
摘要:搞不定这种递归计算,可能我的头脑是“线性”的,这种一层一层的,想起来太费劲了,想的头发都没了。以后希望能有AI来写这种程序吧,AI不怕掉头发! 参考:https://leetcode.com/problems/distribute-coins-in-binary-tree/discuss/22193
阅读全文
posted @
2019-04-23 18:22
Sempron2800+
阅读(111)
推荐(0) 编辑
leetcode981
摘要:考虑线性的搜索会超时,所以用二叉搜索来解决,代码如下: 但是这种写法会超时,这应该是代码质量问题,目前没明白是啥原因。 哪位博友知道我的代码的问题,欢迎告知。 参考了一下别人的方案,看到一个线性搜索的解决方案,却可以通过。
阅读全文
posted @
2019-04-23 12:32
Sempron2800+
阅读(125)
推荐(0) 编辑
leetcode739
摘要:补充另一种写法,效率更高: 自己重新写了一个: 两层循环处理,下面给出解释: 第一层循环,从后向前,最后一个元素肯定标记为0,因为它是最后一个元素(废话)。 第二层循环,从倒数第二个元素开始判断,记录当前位置为i,其后面的元素为j, 如果j元素比i元素大,那么就对i进行标记, 如果j元素不比i元素大
阅读全文
posted @
2019-04-22 09:10
Sempron2800+
阅读(210)
推荐(0) 编辑
leetcode1032
摘要:此解决方案超时: 在上面的代码基础上,增加Trie数据结构,解决方案如下:
阅读全文
posted @
2019-04-21 14:12
Sempron2800+
阅读(211)
推荐(0) 编辑
leetcode1031
摘要:getMaxByCount()方法是在A中选择连续maxlen长度的最大和。 先求L+M个连续区间的最大值,作为最基本的选择,记为allmax。 再进行一次遍历(从maxlen~n),每次选择maxlen个(L和M中更大的那个数)长度的区间,计算这个区间的和,记为bigmax。 然后将原数组一分为二
阅读全文
posted @
2019-04-21 12:41
Sempron2800+
阅读(168)
推荐(0) 编辑
leetcode1029
摘要:贪心思想:根据人距离A,B城市的费用的“差值”,从大到小排序。排的靠前的优先选择其费用低的城市。如果某个城市的人数已经达到1/2,则剩下的全部选择另外一个城市。这种方式的总体的费用最低。
阅读全文
posted @
2019-04-21 12:40
Sempron2800+
阅读(153)
推荐(0) 编辑
leetcode1030
摘要:典型的BFS算法,每一“层”都比前一层的距离多1,因此按层遍历的顺序,即为所求。
阅读全文
posted @
2019-04-21 12:40
Sempron2800+
阅读(224)
推荐(0) 编辑
leetcode1028
摘要:1 class Solution(object): 2 def __init__(self): 3 self.List = list() 4 5 def rdfs(self,S): 6 if S != '': 7 length = len(S) 8 depth = len(self....
阅读全文
posted @
2019-04-14 18:20
Sempron2800+
阅读(236)
推荐(0) 编辑
leetcode1027
摘要:最直接的思路是三层循环,但是会超时,代码如下: 但同样的代码,使用java实现,却可以正常提交,leetcode对这道题目的的判断机制有点奇怪。 如果想解决超时问题,可以考虑使用哈希或者dp思想,来减少判断的时间。 这种题目,做起来很麻烦,看看别人的思路吧。 当时没想出来怎么做,经过一段时间的练习(
阅读全文
posted @
2019-04-14 12:43
Sempron2800+
阅读(676)
推荐(0) 编辑
leetcode1026
摘要:1 public class Solution 2 { 3 Stack S = new Stack(); 4 int maxValue = 0; 5 public void Trace(TreeNode root) 6 { 7 if (root != null) 8 ...
阅读全文
posted @
2019-04-14 12:29
Sempron2800+
阅读(178)
推荐(0) 编辑
leetcode1025
摘要:1 public class Solution 2 { 3 public bool DivisorGame(int N) 4 { 5 if (N % 2 == 1) 6 { 7 return false; 8 } 9 ...
阅读全文
posted @
2019-04-14 12:28
Sempron2800+
阅读(89)
推荐(0) 编辑
leetcode1024
摘要:关键的代码是第3行,将二维数组排序,先按第一个数字从小到大,再按第二个数字从小到大。 设定basetag用于存储之前的剪辑的最大时刻,在开始时刻更晚的剪辑中,寻找开始时间小于上一个剪辑的结束时间的所有剪辑中的,结束时间最晚的一个剪辑。
阅读全文
posted @
2019-04-07 19:45
Sempron2800+
阅读(183)
推荐(0) 编辑
leetcode1023
摘要:这道题的题目描述不清楚,所以做的时候会中陷阱。有2个问题没有说清楚: 1子字符串是否必须要求连续,也就是字符串Babc与模式Bac是否匹配。本题中的要求是不要求连续,也就是Babc满足Bac模式。 2骆驼模式第一组小写不影响模式,也就是说字符串uBa与模式Ba是匹配的,即使模式没有第一组小写的u字符
阅读全文
posted @
2019-04-07 16:14
Sempron2800+
阅读(112)
推荐(0) 编辑
leetcode1022
摘要:使用深度优先,本代码是先序遍历,记录从根到叶子的每条路径的元素值。当遇到叶子节点的时候,按照路径上的节点顺序转化成二进制并计算。遍历整棵树后,就得到了全部路径的总和。
阅读全文
posted @
2019-04-07 15:08
Sempron2800+
阅读(120)
推荐(0) 编辑
leetcode1021
摘要:这道题目描述的很清晰,通过一个变量bcode来计算左右括号的数量,当bcode==0的时候,说明满足一个primitive,此时把到目前位置为止的字符串保存下来。 再把所有的primitive字符串都存储好之后。再依次将每一个primitive的第一个(下标0)字符和最后一个(下标len-1)字符去
阅读全文
posted @
2019-04-07 14:49
Sempron2800+
阅读(170)
推荐(0) 编辑
leetcode1017
摘要:这道题目很巧妙,似乎是有些过于巧妙了,属于我未知领域的类型,把原作者的解决方案放这里。(看大家都在给差评,我也顺手给个差评吧~~) 参考:https://leetcode.com/problems/convert-to-base-2/discuss/265507/JavaC%2B%2BPython-
阅读全文
posted @
2019-04-01 09:34
Sempron2800+
阅读(140)
推荐(0) 编辑
leetcode1020
摘要:解决思路是使用DFS,为了提高效率,只扫描外边框(第一行,最后一行,第一列,最后一列),并使用一个数组记录是否已经访问。
阅读全文
posted @
2019-04-01 09:03
Sempron2800+
阅读(115)
推荐(0) 编辑