[LintCode]Maximum Subarray III
来源:互联网 发布:链轮设计软件 编辑:程序博客网 时间:2024/06/07 18:40
http://www.lintcode.com/en/problem/maximum-subarray-iii/#
找出k个不重叠的子数组,且和最大
不太明显的DP,dp[i][j]为分成i个子数组,原数组长度为j。外层i遍历k,内层遍历从i ~ len。内层的local为当前分割之后的最后一个子数组的结尾位置为nums[j - 1]。
当i == j的时候注意一下
public class Solution { /** * @param nums: A list of integers * @param k: An integer denote to find k non-overlapping subarrays * @return: An integer denote the sum of max k non-overlapping subarrays */ public int maxSubArray(int[] nums, int k) { // write your code here if (nums == null || nums.length < k) { return 0; } int[][] dp = new int[k + 1][nums.length + 1]; for (int i = 1; i <= k; i++) { int local = Integer.MIN_VALUE; for (int j = i; j <= nums.length; j++) { local = Math.max(local, dp[i - 1][j - 1]) + nums[j - 1]; if (j == i) { dp[i][j] = local; } else { dp[i][j] = Math.max(local, dp[i][j - 1]); } } } return dp[k][nums.length]; }}
0 0
- Lintcode - Maximum Subarray III
- LintCode:Maximum Subarray III
- [LintCode]Maximum Subarray III
- [Lintcode]Maximum Subarray III最大子数组 III
- [刷题]Maximum Subarray III
- Maximum Subarray III
- Lintcode - Maximum Subarray II
- Lintcode - Maximum Subarray Difference
- [LintCode]Maximum Subarray Difference
- [Lintcode]Maximum Subarray
- lintcode: Maximum Subarray
- lintcode: Maximum Product Subarray
- [LintCode]Maximum Average Subarray
- [LintCode]Maximum Subarray Difference
- Maximum Product Subarray--lintcode
- Lintcode 617:Maximum Average Subarray
- Lintcode43 Maximum Subarray III solution 题解
- lintcode——maximum average subarray
- 数据结构课下复习1
- swust.oj.1075
- 飞翔nyoj195
- Lightoj1111——Best Picnic Ever(dfs)
- linux动态库及静态库的制作和makefile的简单编写
- [LintCode]Maximum Subarray III
- Android 唯一设备号生成方案
- 机器学习中各种距离
- 事件的绑定与解绑
- JNI学习积累之一 ---- 常用函数大全
- 重启docker服务器后 遇到 'device or resource busy'错误
- 直接插入排序
- 结构体嵌套二级指针
- UVALive 4287 Proving Equivalences(强连通分量)