Dynamic Programming
文章平均质量分 62
美如画是我
这是一位Leader的博客
展开
-
Maximum Product Subarray
class Solution {public: int maxProduct(vector& nums) { const int size=nums.size(); if(size==0) return 0; int maxLast=nums[0]; int minLast=转载 2015-05-07 23:03:08 · 292 阅读 · 0 评论 -
Binary Tree Maximum Path Sum
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas转载 2015-07-06 18:55:26 · 338 阅读 · 0 评论 -
Best Time to Buy and Sell Stock III
1、分别计算出0天到i天的最大利润和i天到最后一天的最大利润,两者相加,找出最大的,但是超时了。class Solution {public: int maxProfit(vector& prices) { const int size=prices.size(); if(size==0) return 0;原创 2015-05-09 23:25:30 · 257 阅读 · 0 评论 -
Word Break II
class Solution {public: vector wordBreak(string s, unordered_set& wordDict) { const int n=s.length(); vector result(n,false); for(int i=0;i<n;++i) {转载 2015-05-09 22:22:21 · 396 阅读 · 0 评论 -
House Robber
class Solution {public: int rob(vector& nums) { const int size=nums.size(); int maxRob=INT_MIN; if(size==0) return 0; else if(size==1)转载 2015-05-07 22:26:22 · 245 阅读 · 0 评论 -
Unique Paths
class Solution {public: int uniquePaths(int m, int n) { vector> dp(m,vector(n,1)); //dp[i][j] 表示到第i行,第j列的路径条数,初始化为1的目的在于初始化边框上的数值 for(int i=1;i<m;++i) for(int j=原创 2015-05-08 15:36:59 · 275 阅读 · 0 评论 -
Unique Binary Search Trees II
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas转载 2015-05-04 11:49:29 · 283 阅读 · 0 评论 -
Maximum Subarray
class Solution {public: int maxSubArray(vector& nums) { const int n=nums.size(); int maxSum=0; //每一段的最大值,局部最优 int result=INT_MIN; //全局最优 for(in转载 2015-05-07 22:02:00 · 280 阅读 · 0 评论 -
Best Time to Buy and Sell Stock II
class Solution {public: int maxProfit(vector &prices) { if(prices.empty()) return 0; int max=0; int start=prices[0]; int last=prices转载 2015-05-09 22:50:12 · 290 阅读 · 0 评论 -
Unique Binary Search Trees
class Solution {public: int numTrees(int n) { vector f(n+1,0); f[0]=1; f[1]=1; for(int i=2;i<=n;++i) { for(int k=0;k<=i-1;++k)转载 2015-05-04 11:22:35 · 263 阅读 · 0 评论 -
Best Time to Buy and Sell Stock
class Solution {public: int maxProfit(vector& prices) { const int size=prices.size(); if(size==0) return 0; int curMin=prices[0]; int MaxPro=0;转载 2015-05-08 10:09:52 · 262 阅读 · 0 评论 -
Triangle
class Solution {public: int minimumTotal(vector > &triangle) { if(!triangle.size()) return 0; vector dp(triangle.size()); int minT=INT_MAX; dp[0]=tria转载 2015-05-07 17:33:01 · 262 阅读 · 0 评论 -
Decode Ways
class Solution {public: int numDecodings(string s) { const int size=s.size(); vector dp(size+1); //dp[i]代表到第i个符号有多少种解码方式 dp[0]=1; //初始化dp[0]为1,为了计算的需要 i原创 2015-05-08 11:37:50 · 251 阅读 · 0 评论 -
Unique Paths II
class Solution {public: int uniquePathsWithObstacles(vector>& obstacleGrid) { const int m=obstacleGrid.size(); const int n=obstacleGrid[0].size(); if(obstacl原创 2015-05-08 16:01:20 · 282 阅读 · 0 评论 -
Longest Palindromic Substring
class Solution {public: string longestPalindrome(string s) { const int n=s.size(); if(n==0) return ""; else if(n==1) return s; else转载 2015-05-15 15:04:30 · 228 阅读 · 0 评论