动态规划
fxy流年无悔
不要留下太多遗憾
展开
-
2021-06-01. 最长回文子串 动态规划
class Solution {public: string longestPalindrome(string s) { vector<vector<int>> dp(s.size(),vector<int>(s.size(),0)); int res=0; int l=0; int r=0; for(int i=s.size()-1;i>=0;i--){ ...原创 2021-06-01 22:53:01 · 238 阅读 · 3 评论 -
动态规划
class Solution{ public int climbStairs(int n){ if(n<=2) return n; int []dp=new int[n+1]; dp[1]=1; dp[2]=2; for(int i=3;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]; } return dp[n]; }...原创 2020-09-09 20:58:04 · 369 阅读 · 0 评论 -
dp5-力扣-java
解题思路:转化为求两个字符串最大公共子序列的问题class Solution { public int minDistance(String word1, String word2) { int m=word1.length(); int n=word2.length(); int [][]dp=new int[m+1][n+1]; for(int i=1;i<=m;i++){ for(int ...原创 2020-05-30 22:46:58 · 192 阅读 · 0 评论 -
dp4-力扣-java-最长递增子序列+ 最长公共子序列
class Solution { public int lengthOfLIS(int[] nums) { if(nums.length<2) return nums.length; int n=nums.length; int res=0; int []dp=new int[n];//dp[i]表示以nums[i]结尾的「上升子序列」的长度 Arrays.fill(dp,1); for(in...原创 2020-05-29 22:49:16 · 310 阅读 · 0 评论 -
dp3-力扣-java
class Solution { public int integerBreak(int n) { int []dp=new int[n+1]; dp[2]=1; for(int i=3;i<=n;i++){ for(int j=1;j<=i-1;j++){ dp[i]=Math.max(dp[i],Math.max(j*dp[i-j],j*(i-j))); ...原创 2020-05-29 21:10:41 · 123 阅读 · 0 评论 -
dp2-力扣-java
class Solution { public int minPathSum(int[][] grid) { if(grid==null||grid.length==0) return 0; int m=grid.length; int n=grid[0].length; int [][]dp=new int[m][n]; dp[0][0]=grid[0][0]; for(int i=1;i<...原创 2020-05-25 21:56:21 · 120 阅读 · 0 评论 -
dp1-力扣-java
DP思路:https://leetcode-cn.com/problems/house-robber/solution/dong-tai-gui-hua-jie-ti-si-bu-zou-xiang-jie-cjavap/class Solution { public int climbStairs(int n) { if(n<=2) return n; int []dp=new int[n+1]; dp[1]=1; .原创 2020-05-25 21:29:15 · 179 阅读 · 0 评论 -
动态规划-dp-面试题63. 股票的最大利润-同-121. 买卖股票的最佳时机+122. 买卖股票的最佳时机 II
动态规划 前i天的最大收益 = max{前i-1天的最大收益,第i天的价格-前i-1天中的最小价格}class Solution { public int maxProfit(int[] prices) { int max=0,min=99999; for(int i=0;i<prices.length;i++){ m...原创 2020-04-26 10:56:38 · 190 阅读 · 0 评论 -
动态规划-面试题49. 丑数
丑数的递推性质: 丑数只包含因子 2, 3, 52,3,5 ,因此有 “丑数 == 某较小丑数 × 某因子” (例如:10 = 5 \times 210=5×2)。class Solution { public int nthUglyNumber(int n) { int a=0,b=0,c=0; int []dp=new int[n]...原创 2020-04-24 16:47:33 · 171 阅读 · 0 评论 -
动态规划-dp-面试题47. 礼物的最大价值
解题思路:动态规划,原地修改先初始化矩阵第一行和第一列,再开始遍历dpclass Solution { public int maxValue(int[][] grid) { int row=grid.length,col=grid[0].length; for(int i=1;i<row;i++) grid...原创 2020-04-23 21:48:29 · 219 阅读 · 0 评论 -
53. 最大子序和-力扣
DP:nums[i-1]意为到i-1位置的最大子序和给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。class Solution: def maxSubArray(self, nums: List[int]) -> int: for i in range(1,len(nums)): ...原创 2020-04-03 09:50:41 · 84 阅读 · 0 评论