DP
wonderabd
这个作者很懒,什么都没留下…
展开
-
[LeetCode]123. 买卖股票的最佳时机 III
比II多了约束条件最多只能达成两次交易。刚开始没想清楚,直接套II的贪心策略,稍微改动了一点细节。但其实是不对的……(居然过了大部分测试数据)class Solution {public: int maxProfit(vector<int>& prices) { int tip=prices.size(); int ans=0...原创 2019-04-15 21:52:59 · 97 阅读 · 0 评论 -
[LeetCode]300. 最长上升子序列
题目描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。题目链接:300. 最长上升子序列nlogn求最长上升子序列记录每个长度的上升子序列的 "结尾"的最小值class Solution {public: int lengthOfLIS(vector<int>& nums) { int tot=0; int x...原创 2019-05-16 21:29:00 · 83 阅读 · 0 评论 -
[LeetCode]354. 俄罗斯套娃信封问题
排序后就类似于最长上升子序列问题。354. 俄罗斯套娃信封问题class Solution {public: struct node{ int w,h; }mem[10005]; static bool cmp(node x,node y){ if (x.w<y.w) return true; if (x...原创 2019-05-11 12:12:52 · 463 阅读 · 0 评论 -
[LeetCode]120. 三角形最小路径和
题目描述:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。题目链接:120. 三角形最小路径和for (int j=i;j>=0;j–)每一行从后往前更新,就能实现只使用 O(n) 的额外空间。class Solution {public: int minimumTotal(vector<vector<int>>&...原创 2019-05-24 15:54:35 · 88 阅读 · 0 评论 -
[LeetCode]312. 戳气球
DPf[i][j]=max { f[i][k-1] + f[k+1][j] + nums[i-1] * nums[k] * nums[j+1] }戳破 i~j 的气球,最后一个戳破的气球是 k312. 戳气球class Solution {public: int maxCoins(vector<int>& nums) { int n=num...原创 2019-05-10 09:52:31 · 321 阅读 · 0 评论 -
[LeetCode]983. 最低票价
题目描述:在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅...原创 2019-05-13 19:24:09 · 209 阅读 · 0 评论 -
[LeetCode]322. 零钱兑换
题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。题目链接:322.零钱兑换简单DP。class Solution {public: static bool cmp(int x,int y){ return x>y; } ...原创 2019-05-13 18:49:56 · 106 阅读 · 0 评论 -
[LeetCode]198. 打家劫舍+213. 打家劫舍 II
简单DP,打家劫舍 II 只需要加上分类讨论(第一间房屋抢或者不抢)。198. 打家劫舍class Solution {public: int rob(vector<int>& nums) { int tip=nums.size(); int f[tip+5]; memset(f,0,sizeof(f)); ...原创 2019-04-22 09:05:01 · 111 阅读 · 0 评论 -
[LeetCode]72. 编辑距离
DP,但要注意边界条件。f[i][j]表示把word1的前i个字符转换成word2的前j个字符需要的最少操作数。word1[i-1]==word2[j-1]f[i][j]=min{f[i-1][j]+1,f[i][j-1]+1,f[i-1][j-1]}word1[i-1]!=word2[j-1]f[i][j]=min{f[i-1][j]+1,f[i][j-1]+1,f[i-1][j-1...原创 2019-04-13 19:18:44 · 111 阅读 · 0 评论 -
[LeetCode]337. 打家劫舍 III
题目描述:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。题目链接:337. 打家...原创 2019-06-09 15:30:04 · 110 阅读 · 0 评论