动态规划
_IanXiao
这个作者很懒,什么都没留下…
展开
-
LeetCode96 Unique Binary Search Trees
题目链接: https://leetcode.com/problems/unique-binary-search-trees/题目描述:给一个数字n,那么有n个结点的二叉查找树共有多少棵。结点val对应从1到n。例如:n=3 1 3 3 2 1 \ / / / \ \ 3 2原创 2016-01-01 15:15:29 · 304 阅读 · 0 评论 -
hdu 2546 饭卡
题目:Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。 某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。 Input 多组数据。对于每原创 2016-02-24 20:39:37 · 332 阅读 · 0 评论 -
hdu 2955 Robberies
题目:Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided to work i原创 2016-02-24 21:30:57 · 343 阅读 · 0 评论 -
hdu 4283 You Are the One
题目:Description The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so i原创 2016-02-25 23:04:06 · 487 阅读 · 0 评论 -
poj 2955 Brackets
题目:Description We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence, if s is a regular brackets sequence, then (s) and [s] are原创 2016-02-26 19:45:39 · 493 阅读 · 0 评论 -
poj 3624 Charm Bracelet
题目:Description Bessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. Each原创 2016-02-26 20:14:48 · 504 阅读 · 0 评论 -
16年腾讯春招--求最长回文子序列长度
题目:求最长回文子序列长度,子序列可不连续。 给一个字符串,找出它的最长的回文子序列的长度。例如,如果给定的序列是“BBABCBCAB“,则输出应该是7,“BABCBAB”是在它的最长回文子序列。 “BBBBB”和“BBCBB”也都是该字符串的回文子序列,但不是最长的。思路:dp[i][j]表示字符串从i到j区间的最长回文子序列长度。 如果str[i]与str[j]相同,则dp[i][j]=dp原创 2016-04-05 20:01:39 · 995 阅读 · 2 评论 -
poj 3254 Corn Fields
题目:DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares.原创 2016-02-27 21:32:32 · 307 阅读 · 0 评论 -
LeetCode337. House Robber III
题目: https://leetcode.com/problems/house-robber-iii/The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the “root.” Besides the root, each原创 2016-03-23 20:34:40 · 1735 阅读 · 0 评论 -
nyoj746 整数划分(四)
题目:描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到了一个难题,让他百思不得其解,他非常郁闷。。亲爱的你能帮帮他吗? 问题是我们经常见到的整数划分,给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积输入 第一行是一个整数T,表示有T组测试数据 接下来T行,每行有原创 2016-02-28 21:01:44 · 394 阅读 · 0 评论 -
tyvj1055 沙子合并
题目:描述设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=300)。每堆沙子有一定的数量,可以用一个整数来描述,现在要将这N堆沙子合并成为一堆,每次只能合并相邻的两堆,合并的代价为这两堆沙子的数量之和,合并后与这两堆沙子相邻的沙子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同,如有4堆沙子分别为 1 3 5 2 我们可以先合并1、2堆,代价为4,得到4 5 2 又合并 1原创 2016-02-28 21:51:58 · 728 阅读 · 0 评论 -
Light OJ1422 Halloween Costumes
题目: http://www.lightoj.com/volume_showproblem.php?problem=1422Time Limit: 2 second(s) Memory Limit: 32 MB Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is p原创 2016-02-29 20:27:26 · 475 阅读 · 0 评论 -
求最长公共子串
题目:给两个字符串,找出它们的最长的公共子串,跟求最长公共子序列不同,这个是求连续的。思路:动态规划。 dp[i][j]表示字符串a中[0~i]的子串,字符串b中[0~j]的子串,此时的最大长度。 如果a[i]==b[j],那么dp[i][j]=dp[i-1][j-1]+1; 如果a[i]不等于b[j],那么dp[i][j]=0。 变量end存放当前最长公共子串的最后一个元素的下标。 如果原创 2016-04-12 19:49:00 · 744 阅读 · 0 评论 -
百度2016研发工程师在线编程题 4.蘑菇阵
题目:在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述: 第一行N,M,K(2 ≤ N,M原创 2016-04-16 17:49:56 · 1756 阅读 · 0 评论 -
求最长公共子序列
题目:给两个字符串a,b,找出他们两的最长公共子序列长度。比如:a = “ABCBDAB”, b = “BDCABA”;则最大子序列长度是4,满足的子序列有B C B A。思路:注意是子序列,不是子串,子序列不要求连续。 动态规划。 dp[i][j]表示字符串a从0~i位置,字符串b从0~j位置,此时的最长公共子序列。如果i位置与j位置对应的字符相同,那么当前位置的LCS的长度等于上一个位置的L原创 2016-04-09 00:33:00 · 792 阅读 · 0 评论 -
求最长等差数列长度
Longest Consecutive Sequence https://leetcode.com/problems/longest-consecutive-sequence/LeetCode上面这道题是求最长连续子序列。换种说法就是求公差为1的最长等差数列。题目描述Given an unsorted array of integers, find the length of the long原创 2016-05-14 09:46:05 · 3742 阅读 · 1 评论 -
3.8求二叉树中节点的最大距离
题目:写一个程序求一棵二叉树中相距最远的两个节点之间的距离。粗箭头的边表示最长距离。分析:相距最远的两个节点,一定是两个叶子节点,或者是一个叶子节点到它的根节点(单枝树)。我们来考虑相距最远的两个节点是两个叶子节点的情况。对于任意一个节点,以该节点为根,假设这个根有k个孩子节点,那么相距最远的两个节点U和V之间的路径与这个根节点的关系有两种情况。1.若路径经过根节点,那么节点U和V属于两个不同的子树原创 2016-05-31 12:26:08 · 569 阅读 · 0 评论 -
hdu 1864 最大报销额
题目:Description 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。 Input 测试输入包含若干测试用例。每个测试用例的第1行包含两个正数 Q 和 N,其中 Q 是给定的报原创 2016-02-24 09:03:10 · 377 阅读 · 0 评论 -
蓝桥杯 算法训练 最大的算式
题目:问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1*2*(3+4+5)=24 1*(2+3)*(4+5)=45 (1*2+3)*(4+5)=4原创 2016-02-18 00:11:43 · 1634 阅读 · 0 评论 -
LeetCode91. Decode Ways
题目链接: https://leetcode.com/problems/decode-ways/题目描述:求一个数字字符串的有多少编码方式。题目分析:嗯,一开始用递归去做超时了,应该是找递推式,动态规划。dp[i]代表对于字符串下标i(即字符串0~i)时的编码方式。1.当s[i]=0时,s[i-1]=1或s[i-1]=2,否则编码无效返回0。 dp[i]=dp[i-2]。此时应该将s[i-1原创 2016-01-22 12:37:50 · 596 阅读 · 0 评论 -
LeetCode63. Unique Paths II
题目链接: https://leetcode.com/problems/unique-paths-ii/题目描述:给一个n*m二维数组,1代表障碍物,0代表可以走。 求从(0,0)到(n-1,m-1)有多少条路径。题目分析:从左上角走到右下角,两种走法,向右走,向下走。得出递推式 res[i][j]=res[i-1][j]+res[i][j-1]; 当(i,j)位置有障碍物时,res[i原创 2016-01-23 13:57:12 · 345 阅读 · 0 评论 -
LeetCode264. Ugly Number II
题目链接: https://leetcode.com/problems/ugly-number-ii/题目描述:找出第n个丑数。 丑数:1是一个特殊的丑数,其次只含有2,3,5质因数的数被定义为丑数。 题目分析:诶,自己做没做出来。 http://www.geeksforgeeks.org/ugly-numbers/ 可以参考这个很详细哒。根据动态规划的思想,当前的丑数肯定是由之原创 2016-01-24 14:17:33 · 418 阅读 · 0 评论 -
LeetCode304. Range Sum Query 2D - Immutable
题目链接: https://leetcode.com/problems/range-sum-query-2d-immutable/题目描述:求矩阵数组中由左上角点(row1,col1)和右下角点(row2,col2)形成的矩形中所有数字之和。题目分析:动态规划的思想。sums[i][j]=sums[i-1][j]+sums[i][j-1]-sums[i-1][j-1]+matrix[i][j]原创 2016-01-26 14:55:57 · 373 阅读 · 0 评论 -
LeetCode120. Triangle
题目链接: https://leetcode.com/problems/triangle/题目描述:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。For example, given the following triangle[ [2], [3,4], [6,5,7], [4,1,8,3]]The minimum pat原创 2016-01-28 19:44:46 · 321 阅读 · 0 评论 -
LeetCode322. Coin Change
题目链接: https://leetcode.com/problems/coin-change/题目描述:给你n种钱币,然后给你一个总数amount,这些钱币可以用无数次,问你用这些钱币组成这个amount,最少的数量是多少?如果不能组成返回-1。 Example 1: coins = [1, 2, 5], amount = 11 return 3 (11 = 5 + 5 + 1)思路:原创 2016-02-05 22:09:33 · 468 阅读 · 0 评论 -
LeetCode279. Perfect Squares
题目链接: https://leetcode.com/problems/perfect-squares/题目描述:完美平方数,给定任意数n,它可表示为多个平方数(如1,4,9,16…)的和,求出表示出任意数n所需的平方数的最少个数。题目分析:动态规划思想。 找n需要的最少平方数个数,n=a+b*b,此时就是找a需要的最少平方数个数,n需要的最少平方数个数=a需要的最少平方数个数+1。代码:c原创 2016-01-28 20:36:06 · 340 阅读 · 0 评论 -
LeetCode64. Minimum Path Sum
题目链接: https://leetcode.com/problems/minimum-path-sum/题目描述:求矩阵从左上角到右下角最小路径和。题目分析:~~(╯﹏╰)b动态规划基础题。代码:class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size();原创 2016-01-29 16:37:53 · 407 阅读 · 0 评论 -
ZOJ1025 Wooden Sticks
题目:Description There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs som原创 2016-02-13 13:15:05 · 790 阅读 · 0 评论 -
LeetCode53. Maximum Subarray
题目链接: https://leetcode.com/problems/maximum-subarray/题目描述:求最大连续子序列和。题目分析:参考 http://www.cnblogs.com/bakari/p/4007368.html用动态规划的方法,就是要找到其转移方程式,也叫动态规划的递推式,动态规划的解法无非是维护两个变量,局部最优和全局最优。local[i]表示以nums[原创 2016-01-31 14:38:29 · 344 阅读 · 0 评论 -
LeetCode152. Maximum Product Subarray
题目链接: https://leetcode.com/problems/maximum-product-subarray/题目描述:求最大连续子序列乘积。For example, given the array [2,3,-2,4], the contiguous subarray [2,3] has the largest product = 6.题目分析:还是动态规划的思想。维护局部最优原创 2016-01-31 14:50:11 · 366 阅读 · 0 评论 -
LeetCode221. Maximal Square
题目链接: https://leetcode.com/problems/maximal-square/题目描述:给出一个M*N的矩阵, 只有’1’, ‘0’,两种元素; 需要你从中找出 由’1’组成的最大正方形。题目分析:嗯,还是动态规划。换个角度看,就是找边长最大的正方形。 从前往后推。正方形左上,上边,左边都已确定,正方形右下的边长由左边,上边,左上控制。 以当前点(x,y) = ‘1原创 2016-02-01 12:30:04 · 439 阅读 · 0 评论 -
LeetCode198. House Robber
题目链接: https://leetcode.com/problems/house-robber/题目描述:题目设计了一个抢劫犯的情景,其实就是求数组中不相邻数据进行组合得到的最大值。思路:dp[i]为以nums[i]为结尾的序列中不相邻数据组合得到的最大值。 当前位置i选不选由i-2,和i-1位置决定。 dp[i]=max(dp[i-2]+nums[i],dp[i-1]);代码:clas原创 2016-02-02 23:52:07 · 415 阅读 · 0 评论 -
LeetCode213. House Robber II
题目链接: https://leetcode.com/problems/house-robber-ii/题目描述:这道题就是在上一题(198. House Robber)的基础上加了一个条件,变成了环,所以如果抢了第一家,就不能抢最后一家。思路:我们可以分别求从第一家到倒数第二家的不相邻数据组合的最大值,从第二家到最后一家的不相邻数据组合的最大值。比较找出最终最大值。代码:class Solu原创 2016-02-02 23:56:49 · 426 阅读 · 0 评论 -
LeetCode121. Best Time to Buy and Sell Stock
题目链接: https://leetcode.com/problems/best-time-to-buy-and-sell-stock/题目描述:用一个数组表示股票每天的价格,数组的第i个数表示股票在第i天的价格。 如果只允许进行一次交易,也就是说只允许买一支股票并卖掉,求最大的收益。思路:动态规划。从前往后,记录出现的股票最低的价格,并记录以当天价格出售的收益,比较找出最大收益。代码:cla原创 2016-02-04 20:11:46 · 448 阅读 · 0 评论 -
LeetCode123. Best Time to Buy and Sell Stock III
题目链接: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/题目描述:用一个数组表示股票每天的价格,数组的第i个数表示股票在第i天的价格。最多交易两次,手上最多只能持有一支股票,求最大收益。思路:最多交易两次。可以以i天为分界线,一个记录以prices[i]为结尾的最大收益(即i天之前的最大收益,从前往后),一原创 2016-02-04 20:24:49 · 450 阅读 · 0 评论 -
LeetCode300. Longest Increasing Subsequence
题目链接: https://leetcode.com/problems/longest-increasing-subsequence/题目描述:求最长增长子序列包含数字个数。Given [10, 9, 2, 5, 3, 7, 101, 18], The longest increasing subsequence is [2, 3, 7, 101], therefore the length原创 2016-02-02 12:48:57 · 382 阅读 · 0 评论