常见数据结构与算法:拆分数字(暴力递归,动态规划)
生活随笔
收集整理的這篇文章主要介紹了
常见数据结构与算法:拆分数字(暴力递归,动态规划)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
public class SplitNumber {public static void main(String[] args) {int pre = 1;int rest = 27;System.out.println(process(1,rest));System.out.println(dp(1,rest));}// pre 上一個(gè)拆出來(lái)的數(shù)// rest 剩下拆的數(shù)public static int process(int pre, int rest){if(rest == 0){return 1;}if(pre > rest){return 0;}int way = 0;for (int i = pre; i <= rest; i++) {way += process(i, rest-i);}return way;}public static int dp(int pre, int rest){int N = rest + 1;int[][] dp = new int[N][N];// 行表示rest 列表示prefor (int i = 1; i < dp.length; i++) {dp[0][i] = 1;}for (int i = 1; i < dp.length; i++) { // i:restfor (int j = 1; j <= i; j++) {// j:prefor (int k = j; k <=i; k++) {dp[i][j] += dp[i-k][k];}}}return dp[N-1][1];}
}
?
總結(jié)
以上是生活随笔為你收集整理的常见数据结构与算法:拆分数字(暴力递归,动态规划)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《穿越计算机的迷雾》读书笔记二
- 下一篇: 《穿越计算机的迷雾》读书笔记三