动态规划
lzm990311
有遗憾才叫人生。知不足,然后能自反也;知困,然后能自强也。
展开
-
740. Delete and Earn
public class Test2 { public static void main(String[] args) { int[] nums={3,4,2}; Test2 test2=new Test2(); test2.deleteAndEarn(nums); } public int deleteAndEarn(int[] nums) { if (nums == null || nums.length == .原创 2021-10-13 17:34:50 · 72 阅读 · 0 评论 -
1473. Paint House III
动态规划原创 2021-05-07 09:32:01 · 77 阅读 · 0 评论 -
781. 森林中的兔子;最长前缀和(前缀和,dp)
package Group12; import java.util.HashMap; import java.util.Map; public class Test10 { public static void main(String[] args) { int[] answers = {1, 1, 2}; Test10 test10=new Test10(); int i = test10.numRabbits(answers); .原创 2021-04-04 23:25:25 · 61 阅读 · 0 评论 -
动态规划 132. 分割回文串 II
这道题跟 131. 分割回文串 差不多,131题是回溯法求出所有分割的回文串,132题则可以根据131题的答案查找最小分割数 list(i).size()-1; 另外一种方法是动态规划(效率较高) 链接题解 public int minCut(String s) { int n = s.length(); boolean[][] g = new boolean[n][n]; for (int i = 0; i < n; ++i) {原创 2021-03-08 08:27:25 · 104 阅读 · 0 评论 -
198. House Robber 213. House Robber II
public static void main(String[] args) { int[] nums = {2, 7, 9, 3, 1}; Test2 test2 = new Test2(); int rob = test2.rob(nums); System.out.println(rob); } public int rob(int[] nums) { int length = nums.len...原创 2021-05-05 10:28:21 · 74 阅读 · 0 评论 -
740. Delete and Earn
import Group11.Test; /** * dp[i] 表示删除元素i所能获得的最大点数 * c[i] 表示元素i的个数 * <p> * 元素i的选择有删除和不删除两种状态,如果删除i,获得的点数是 dp[i] = dp[i - 2] + i * c[i] * 如果不删i,获得的点数是 dp[i - 1] * 因此转移方程为:dp[i] = max(dp[i - 1],dp[i - 2] + i * c[i]dp[i]=max(dp[i−1],dp[i−2]+i∗c[i.原创 2021-05-05 10:18:01 · 38 阅读 · 0 评论