public int maxValueOfCoins(List<List<Integer>> piles, int k) {
int[] dp = new int[k + 1];
int m = piles.size();
List<Integer> list = piles.get(0);
for (int i = 0; i < list.size() && i < k; i++) {
dp[i + 1] = dp[i] + list.get(i);
}
for (int i = 1; i < m; i++) {
List<Integer> row = piles.get(i);
for (int j = k; j >= 0 ; j--) {
int sum = 0;
for (int t = 0; t < row.size() && t < j; t++) {
sum += row.get(t);
dp[j] = Math.max(dp[j], dp[j - t -1] + sum);
}
}
}
return dp[k];
}
lc-2218
原创
©著作权归作者所有:来自51CTO博客作者wx5be5864e766ab的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
uvalive 2218
题意:一场运动比赛有三个阶段,给出了每个选手在每个阶段的平
Line Cross #include -
Simple String Problem FZU - 2218
点击打开链接字符种类
FZU 状态压缩 i++ #include 子串 -
LC——移动零
LC——移动零题目链接:https://
leetcode 算法 双指针 -
java实现计算公式运算结果
什么是递归百度百科:程序调用自身的编程技巧称为递归( recursion)。借用知乎上Memoria的回答:假设你在一个电影院,你想知道自己坐在哪一排,但是前面人很多,你懒得去数了,于是你问前一排的人「你坐在哪一排?」,这样前面的人 (代号 A) 回答你以后,你就知道自己在哪一排了——只要把 A 的答案加一,就是自己所在的排了。不料 A 比你还懒,他也不想数,于是他也问他前面的人 B「你坐在哪一排
java实现计算公式运算结果 c语言汉诺塔递归算法 java 递归 java打印结果横向排列 java经典算法