• LeetCode--689_Maximum_Sum_of_3_NonOverlapping_Subarrays


    原题链接:点击这里

    一道很水很水的背包问题? 大概算不上背包吧QAQ 自己的dp 真的是太差劲啦,以后每天一道LeetCode 备战秋招!

    package leetcode;
    
    public class a689_Maximum_Sum_of_3_NonOverlapping_Subarrays {
        
        public static int[] maxSumOfThreeSubarrays(int[] nums, int k) {
            int [] ans = new int [3];
            int [][] dp = new int [3][nums.length+1];
            
            int [] sum = new int [nums.length+1];
            for(int j=1;j<=nums.length;j++) {
                if(j==1) {
                    sum[j]=nums[j-1];
                }else {
                    sum[j]+=sum[j-1]+nums[j-1];
                }
            }
            int mmx =0;
            for(int j=0;j<3;j++) {
                int max = 0;
                for(int i = k*j+1;i<=nums.length-k+1;i++) {
                    if(j==0) {
                        dp[0][i] = sum[i+k-1]-sum[i-1];
                    }else {
                        max = Math.max(max, dp[j-1][i-k]);
                        dp[j][i] = max+sum[i+k-1]-sum[i-1];
                        mmx = Math.max(mmx, dp[j][i]);
                    }
                }
            }
            
            for(int j=2;j>=0;j--) {
                for(int i=1;i<=nums.length-k+1;i++) {
                    if(dp[j][i]==mmx) {
                        ans[j]=i-1;
                        mmx -= sum[i+k-1]-sum[i-1];
                        break;
                    }
                }
            }
            return ans;
        }
        
        public static void main(String[] args) {
            
            int [] nums = {1,2,1,2,6,7,5,1};
            int k = 2;
            maxSumOfThreeSubarrays(nums,k);
        }
    
    }

    Runtime: 4 ms, faster than 82.08% of Java online submissions for Maximum Sum of 3 Non-Overlapping Subarrays.
    
    
    Memory Usage: 42.6 MB, less than 34.91% of Java online submissions forMaximum Sum of 3 Non-Overlapping Subarrays.
     
  • 相关阅读:
    python装饰器的简单理解
    自动化测试接口大纲
    web测试方法小结----以便于测试用例
    git 路上的拦路虎 了解一下
    python+selenium +unittest生成HTML测试报告
    Ext.js 初识
    Ajax
    JIRA使用
    win10系统注册表基础知识
    Markdown 模式下 代码的折叠与展开
  • 原文地址:https://www.cnblogs.com/Dvelpro/p/10747662.html
Copyright © 2020-2023  润新知