- 博客(13)
- 收藏
- 关注
原创 LeetCode #410 Split Array Largest Sum
Split Array Largest Sum题意描述 给出一个长度为n的非负序列,需要将该序列分成m段,使得每段数字之和的最大值尽可能小。求这个最小值。 其中,1<=n<=1000,1<=m<=min(50,n)。算法分析二分答案。。。。。时间复杂度:O(n*log(sum))DP但DP的时间复杂度是O(m*n^2),虽然不超时,但很慢。代码class Solution {public
2017-01-12 18:45:20
208
原创 LeetCode #310 Minimum Height Trees
Minimum Height Trees题目描述 给出一棵树,问选择那些点做根节点时,树的深度最小。要求返回这些点的标号。算法分析 我的想法是,用两次dfs找出这棵树的最长链。然后最长链中间的一个或两个点就是答案。这是可证明的,至于怎么严格证明我也不太会,自行领悟一下吧= =。。 然而这样的问题是,代码不太好写,要写两次dfs,最后还要按深度找到中间节点。 于是乎,xy同学就告诉我,你直接一
2017-01-08 03:29:43
249
原创 Leetcode #309 Best Time to Buy and Sell Stock with Cooldown
Best Time to Buy and Sell Stock with Cooldown题目描述 有一只股票,股票的每天的价格用一个整数序列给出。 操作要求如下:当你持有股票的时候,你可以卖出。卖出之后,你下一天不能进行任何买卖行为(cooldown)。当你不持有任何股票的时候,你可以买进。问最后能获得的最大利润是多少。Example:prices = [1, 2, 3, 0, 2]
2017-01-08 01:38:20
245
原创 Leetcode #124 Binary Tree Maximum Path Sum
Binary Tree Maximum Path Sum题目描述 给出一颗二叉树,每个树节点有一个整数权值。 现在要求从树上找出一条路径,使得权值之和最大,问这个最大权值之和是多少。算法分析 一开始我的想法是用树路径的倍增算法,然后找LCA什么之类的,结果发现都想歪了。 首先这里声明为每个树节点声明两个值:ans:以当前节点为根节点,且经过当前节点的路径的权值之和的最大值maxPath:
2017-01-07 16:52:55
342
原创 Leetcode #167 Two Sum II - Input array is sorted
Two Sum II - Input array is sorted题目描述 给出一个排好序的升序序列,从里面选择两个数,使两个数之和为一个给出的整数target。算法分析 很简单的一道题,算法可谓多种多样。 我们可以利用题目的一个特点,就是给出的序列已经是升序的了。 因此我们可以设置两个指针分别在序列头和序列尾。若指针指向的数字之和比target大,则尾指针减一。若指针指向的数字之和比
2017-01-06 23:44:02
199
原创 作业:8.15 最大公共子图
8.15 最大公共子图题目 证明如下问题是NP-完全的: 输入:两个图G1=G(V1,E1)G_1=G(V_1,E_1) 和 G2=G(V2,E2)G_2=G(V_2,E_2); 输出:两个结点集合V1′⊆V1V{_1}'\subseteq V_1 和 V2′⊆V2V{_2}'\subseteq V_2,他们被移除后,将在两图中分别留下至少 bb 个结点,且图的剩余部分完全一样。解析设G1
2017-01-06 23:17:05
392
原创 牢骚&安利题目
感觉自己越来越蠢了。最近做leetcode的题,做一题卡一题。于是乎我就来安利几道题吧(就是我自己没想出来或者没写出来)。84. Largest Rectangle in Histogram题意描述 给出一个长度为n的非负整数序列A。Ai表示一个宽度为1,高度为Ai的矩形。现在这n个矩形全都下对齐地紧挨在一起,求整个图的最大矩形面积。算法分析 具体就是用一个栈维护一个上升高度序列,当某个高
2016-11-16 16:07:24
332
原创 Leetcode #407 Trapping Rain Water
Leetcode #407 Trapping Rain Water II问题描述 给出一个n*m的矩阵表示一块区域的地形,每个格子的数值表示这个格子所代表的地势高度。 问对于这样的一个矩阵,最多能储备多少的水?算法分析这题其实看题目就知道,这是之前一维的储水问题的升级版,从一维变成了二维。但是,看了我博客中关于一维的题解报告,并希望能拓展到这道题中,是完全不可行的。这也是这题卡了我非常非常久
2016-10-31 22:12:10
615
原创 LeetCode #315 Count of Smaller Numbers After Self
LeetCode #315 Count of Smaller Numbers After Self问题描述 给出一个整数序列,求解在这个序列中每个数字右边有多少个数字比当前数字小。 例子: Given nums = [5, 2, 6, 1] To the right of 5 there are 2 smaller elements (2 and 1). To the rig
2016-10-18 17:11:06
357
原创 LeetCode #96 Unique Binary Search Tree
LeetCode #96 Unique Binary Search Tree问题描述 对于一个具有n个结点的二叉树,问具有多少种不同结构的二叉树? 算法分析这题我们可以使用分治的思想来解决。对于一个n个结点的二叉树,用f(n)表示其结构总数。当确定了根节点后,我们需要将剩下的n-1个结点分配在根节点的左右子树上,当前结构总数就是左子树的结构总数与右子树的结构总数的乘积,故f(n)=∑f
2016-10-18 13:27:34
285
原创 Leetcode #42 Trapping Rain Water
Leetcode #42 Trapping Rain Water题目描述 直接看图吧,秒懂的。算法分析 很简单的思路,用一个单调队列(由于队列头指针不动,也可以说是个栈)维护即可。 从左往右扫地形的高度,然后根据高度放进一个最大值单调队列当中。如果单调队列中的部分元素出队,则意味着有一块区域能存储水,根据公式计算即可。(公式见代码)时间复杂度:O(n)const int maxn=1000
2016-09-20 22:11:59
196
原创 LeetCode #25 Reverse Nodes in k-Group
LeetCode #25 Reverse Nodes in k-Group题目描述 给出一个单向链表,再给出一个常数k。 任务如下: 步骤一:讲单向链表前k个元素的顺序倒转 步骤二:剩下的元素重复执行步骤一、步骤二,直到剩下的元素不足k个。 要求:只允许使用常量级别的额外空间。例子: 原链表:1->2->3->4->5 当k=2:2->1->4->3->5 当k=3:3->2->1-
2016-09-12 16:45:44
239
原创 LeetCode #56 题解报告
LeetCode #56 题解报告问题描述 给出若干个闭区间,我们的任务是将这些区间交(merge)起来,得到一系列新的闭区间。 如: 原区间集:[1,3] [2,6] [8,10] [15,18] merge后:[1,6] [8,10] [15,18]算法分析按照区间左端点的大小排序,得到左端点从小到大的新区间集。新建两个变量start,end,分别表示当前区间的左右端点。枚举排好序
2016-09-11 14:44:14
324
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人