动态规划
Anrys
这个作者很懒,什么都没留下…
展开
-
java刷题--338 比特位计数
java刷题--338 比特位计数题目代码结果题目代码动态规划class Solution { public int[] countBits(int num) { int[] res = new int[num + 1]; res[0] = 0; for(int i = 1;i<= num;i++){ res[i] = res[i & (i - 1)] + 1; //把最低位1去掉 }原创 2021-07-30 17:01:46 · 98 阅读 · 0 评论 -
java刷题--264丑数II
java刷题--264丑数II题目代码结果题目代码class Solution { public int nthUglyNumber(int n) { int n2 = 0,n3 = 0,n5 = 0; int[] dp = new int[n]; dp[0] = 1; for(int i = 1;i<n;i++){ dp[i] = Math.min(2*dp[n2],Math.min(3*dp[n原创 2021-07-27 14:51:26 · 91 阅读 · 0 评论 -
java刷题--91解码方法
java刷题--91解码方法题目代码结果题目代码class Solution { public int numDecodings(String s) { int n = s.length(); int[] f = new int[n+1]; f[0] = 1; for (int i = 1; i <= n; i++) { //计算单干情况的累加和 if (s.charAt(i原创 2021-07-25 15:36:56 · 88 阅读 · 0 评论 -
java刷题--647回文子串
java刷题--647回文子串题目代码结果题目代码class Solution { public int countSubstrings(String s) { int n = s.length(); boolean[][] dp = new boolean[n][n]; int count=0; for(int j=0;j<n;j++) { for(int i=0;i<=j;i++) {原创 2021-07-25 12:45:09 · 95 阅读 · 0 评论 -
java刷题--221最大正方形
java刷题--221最大正方形题目代码结果题目代码当且仅当右下角大于等于1时构成正方形,此时右下角的值即正方形边长class Solution { public int maximalSquare(char[][] matrix) { int maxSide = 0; if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return maxSide; int原创 2021-07-24 23:19:20 · 111 阅读 · 0 评论 -
java刷题--64最小路径和
java刷题--64最小路径和题目代码结果题目代码class Solution { public static int minPathSum(int[][] grid) { int height = grid.length; int width = grid[0].length; for (int row = 0; row < height; row++) { for (int col = 0; col <原创 2021-07-24 23:07:49 · 100 阅读 · 0 评论 -
java刷题--518零钱兑换II
java刷题--518零钱兑换II题目代码结果题目代码class Solution { public int change(int amount, int[] coins) { int[] dp = new int[amount + 1]; dp[0] = 1; for (int coin : coins) { for (int i = coin; i <= amount; i++) {原创 2021-07-24 22:56:00 · 117 阅读 · 0 评论 -
java刷题--编辑距离
java刷题--编辑距离题目代码结果题目代码class Solution { public int minDistance(String word1, String word2) { int n = word1.length(); int m = word2.length(); // 有一个字符串为空串 if (n * m == 0) {return n + m;} int[][] D = new int[n +原创 2021-07-24 22:03:43 · 66 阅读 · 0 评论 -
java刷题--279完全平方数
java刷题--279完全平方数题目代码结果题目代码class Solution { public int numSquares(int n) { int[] dp = new int[n + 1]; Arrays.fill(dp,60); dp[0] = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j * j <= i; j++) {原创 2021-07-24 21:32:13 · 66 阅读 · 0 评论 -
java刷题--322零钱兑换
java刷题--322零钱兑换题目代码结果题目代码public class Solution { public int coinChange(int[] coins, int amount) { int max = amount + 1; int[] dp = new int[max]; Arrays.fill(dp, max); dp[0] = 0; for (int i = 1; i <= amount原创 2021-07-24 21:13:04 · 100 阅读 · 0 评论 -
java刷题--120三角形最小路径和
java刷题--120三角形最小路径和题目代码结果题目代码class Solution { public int minimumTotal(List<List<Integer>> triangle) { if (triangle == null || triangle.size() == 0) return 0; // 加1可以不用初始化最后一层 int[][] dp = new int[triangle.size()+原创 2021-07-23 22:52:51 · 88 阅读 · 0 评论 -
java刷题--413等差数列划分
java刷题--413等差数列划分题目代码结果题目代码public class Solution { public int numberOfArithmeticSlices(int[] A) { int dp = 0; int sum = 0; for (int i = 2; i < A.length; i++) { if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) {原创 2021-07-22 12:49:32 · 61 阅读 · 0 评论 -
java刷题--42接雨水
java刷题--42接雨水题目代码结果题目代码暴力法class Solution { public int trap(int[] height) { int ans = 0; int size = height.length; for (int i = 1; i < size - 1; i++) { int max_left = 0, max_right = 0; for (int j =原创 2021-07-22 12:28:06 · 93 阅读 · 0 评论 -
java刷题--139单词拆分
java刷题--139单词拆分题目代码结果题目代码public class Solution { public boolean wordBreak(String s, List<String> wordDict) { Set<String> wordDictSet = new HashSet(wordDict); boolean[] dp = new boolean[s.length() + 1]; dp[0] = tr原创 2021-07-22 10:52:12 · 66 阅读 · 0 评论 -
java刷题--121 买卖股票的最佳时机
java刷题--121 买卖股票的最佳时机题目代码结果题目代码public class Solution { public int maxProfit(int prices[]) { int minprice = Integer.MAX_VALUE; int maxprofit = 0; for (int i = 0; i < prices.length; i++) { if (prices[i] < min原创 2021-07-18 23:42:56 · 57 阅读 · 0 评论 -
java刷题--1014最佳观光组合
java刷题--1014最佳观光组合题目代码结果题目代码稍微给这个公式变形成A[i]+i+A[j]-j,这样就可以看成是左A[i]+i和右A[j]-j两部分和的最大值。随着遍历数组,我们对两部分和取最大值,并且若当前的值—下标对之和比之前更大,我们就更新left部分的值即可。class Solution { public int maxScoreSightseeingPair(int[] values) { int res = 0, left = values[0]+0;原创 2021-07-18 23:10:50 · 65 阅读 · 0 评论 -
剑指offer--14-I 剪绳子
剑指offer--14-I 剪绳子题目![在这里插入图片描述](https://img-blog.csdnimg.cn/2021071818185891.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Fucnlz,size_16,color_FFFFFF,t_70)代码结果题目代码class Solution { public int原创 2021-07-18 18:19:58 · 79 阅读 · 0 评论 -
java刷题--1143最长公共子序列
java刷题--1143最长公共子序列题目代码结果题目代码class Solution { public int longestCommonSubsequence(String s1, String s2) { int[][] dp = new int[s1.length() + 1][s2.length() + 1]; for (int i = 0; i < s1.length(); ++i) for (int j = 0;原创 2021-07-17 21:50:16 · 91 阅读 · 0 评论 -
java刷题--152乘积最大子数组
java刷题--152乘积最大子数组题目代码结果题目代码public class Solution { public int maxProduct(int[] A) { if (A == null || A.length == 0) return 0; int[] dp_max = new int[A.length]; int[] dp_min = new int[A.length]; dp_max[0] = A[0];原创 2021-07-17 15:42:40 · 97 阅读 · 0 评论 -
(java刷题--918环形子数组的最大和
java刷题--918环形子数组的最大和题目代码结果题目代码class Solution { public int maxSubarraySumCircular(int[] A) { int[] dp = new int[A.length]; dp[0] = A[0]; int max = dp[0],sum = A[0]; //求最大子序列和 for (int i =原创 2021-07-17 14:56:33 · 167 阅读 · 0 评论 -
java刷题--740删除并获得点数
java刷题--740删除并获得点数题目代码结果题目代码class Solution { public int deleteAndEarn(int[] nums) { int max_Num = 0; for(int num: nums){ if(max_Num < num) max_Num = num; } //根据最大值创建多大的数组 int[] dp = new int[max_Num + 1]; /原创 2021-07-16 20:39:45 · 67 阅读 · 0 评论 -
java刷题--213打家劫舍II
java刷题--213打家劫舍II题目代码结果题目代码class Solution { public int rob(int[] nums) { int length = nums.length; if (length == 1) return nums[0]; else if (length == 2) return Math.max(nums[0], nums[1]); return Math.max(robRange(nu原创 2021-07-16 16:54:37 · 101 阅读 · 0 评论 -
java刷题--198打家劫舍
java刷题--198打家劫舍题目代码结果题目代码class Solution { public int rob(int[] nums) { if (nums == null || nums.length == 0) return 0; int n = nums.length; if (n == 1) return nums[0]; int[] dp = new int[n]; dp[0] = nums[0];原创 2021-07-14 15:55:16 · 126 阅读 · 0 评论