? ?OJ鏈接 :leetcode 343.整數拆分
代碼:?
class Solution {public int integerBreak(int n) {int[] dp = new int[n+1];//每個n,拆分多個整數乘積的最大值dp [0] = 0;dp [1] = 1; for(int i =2 ; i<=n; i++){for(int j = 0 ; j < i; j++){dp[i] = Math.max(dp[i],Math.max( j*(i-j),j*dp[i-j]));//后邊MAX ,兩種情況 1.j*(i-j),當前j乘以剩下的i-j整數,只有兩個數;//2.j*dp[i-j] , 當前j乘以 多個拆分整數的最大值//前邊MAX,當前j位置 ,dp[i]的最大值,多個j比較。}}return dp[n];}
}
OJ鏈接 :198.打家劫舍
?
?代碼:
class Solution {public int rob(int[] nums) {int n =nums.length;int[] dp = new int[n+1];dp[1] = nums[0];for(int i=2; i<=n ;i++){ dp[i] = Math.max (dp[i-1] , nums[i-1]+dp[i-2]);//兩種情況//前 n-1 大 (還是) 該位置加前n-2的錢數大;}return dp[n];}
}