摘要:
搞不定这种递归计算,可能我的头脑是“线性”的,这种一层一层的,想起来太费劲了,想的头发都没了。以后希望能有AI来写这种程序吧,AI不怕掉头发! 参考:https://leetcode.com/problems/distribute-coins-in-binary-tree/discuss/22193
阅读全文
posted @ 2019-04-23 18:22
Sempron2800+
阅读(118)
推荐(0)
摘要:
考虑线性的搜索会超时,所以用二叉搜索来解决,代码如下: 但是这种写法会超时,这应该是代码质量问题,目前没明白是啥原因。 哪位博友知道我的代码的问题,欢迎告知。 参考了一下别人的方案,看到一个线性搜索的解决方案,却可以通过。
阅读全文
posted @ 2019-04-23 12:32
Sempron2800+
阅读(130)
推荐(0)
摘要:
补充另一种写法,效率更高: 自己重新写了一个: 两层循环处理,下面给出解释: 第一层循环,从后向前,最后一个元素肯定标记为0,因为它是最后一个元素(废话)。 第二层循环,从倒数第二个元素开始判断,记录当前位置为i,其后面的元素为j, 如果j元素比i元素大,那么就对i进行标记, 如果j元素不比i元素大
阅读全文
posted @ 2019-04-22 09:10
Sempron2800+
阅读(218)
推荐(0)
摘要:
此解决方案超时: 在上面的代码基础上,增加Trie数据结构,解决方案如下:
阅读全文
posted @ 2019-04-21 14:12
Sempron2800+
阅读(216)
推荐(0)
摘要:
getMaxByCount()方法是在A中选择连续maxlen长度的最大和。 先求L+M个连续区间的最大值,作为最基本的选择,记为allmax。 再进行一次遍历(从maxlen~n),每次选择maxlen个(L和M中更大的那个数)长度的区间,计算这个区间的和,记为bigmax。 然后将原数组一分为二
阅读全文
posted @ 2019-04-21 12:41
Sempron2800+
阅读(174)
推荐(0)
摘要:
贪心思想:根据人距离A,B城市的费用的“差值”,从大到小排序。排的靠前的优先选择其费用低的城市。如果某个城市的人数已经达到1/2,则剩下的全部选择另外一个城市。这种方式的总体的费用最低。
阅读全文
posted @ 2019-04-21 12:40
Sempron2800+
阅读(159)
推荐(0)
摘要:
典型的BFS算法,每一“层”都比前一层的距离多1,因此按层遍历的顺序,即为所求。
阅读全文
posted @ 2019-04-21 12:40
Sempron2800+
阅读(230)
推荐(0)
摘要:
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+
阅读(241)
推荐(0)
摘要:
最直接的思路是三层循环,但是会超时,代码如下: 但同样的代码,使用java实现,却可以正常提交,leetcode对这道题目的的判断机制有点奇怪。 如果想解决超时问题,可以考虑使用哈希或者dp思想,来减少判断的时间。 这种题目,做起来很麻烦,看看别人的思路吧。 当时没想出来怎么做,经过一段时间的练习(
阅读全文
posted @ 2019-04-14 12:43
Sempron2800+
阅读(688)
推荐(0)
摘要:
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+
阅读(184)
推荐(0)