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);
}
}
LeetCode--689_Maximum_Sum_of_3_NonOverlapping_Subarrays的更多相关文章
- 我为什么要写LeetCode的博客?
# 增强学习成果 有一个研究成果,在学习中传授他人知识和讨论是最高效的做法,而看书则是最低效的做法(具体研究成果没找到地址).我写LeetCode博客主要目的是增强学习成果.当然,我也想出名,然而不知 ...
- LeetCode All in One 题目讲解汇总(持续更新中...)
终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...
- [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串
Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...
- Leetcode 笔记 113 - Path Sum II
题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...
- Leetcode 笔记 112 - Path Sum
题目链接:Path Sum | LeetCode OJ Given a binary tree and a sum, determine if the tree has a root-to-leaf ...
- Leetcode 笔记 110 - Balanced Binary Tree
题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...
- Leetcode 笔记 100 - Same Tree
题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...
- Leetcode 笔记 99 - Recover Binary Search Tree
题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...
- Leetcode 笔记 98 - Validate Binary Search Tree
题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binar ...
- Leetcode 笔记 101 - Symmetric Tree
题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...
随机推荐
- jQuery(六)、事件
1 页面载入 1.ready(fn) 当DOM载入完后绑定一个要执行的函数. 这是事件模块中最重要的一个函数,可以极大地提高web应用程序的响应速度. $(document).ready(functi ...
- Java集合类源码解析:Vector
[学习笔记]转载 Java集合类源码解析:Vector 引言 之前的文章我们学习了一个集合类 ArrayList,今天讲它的一个兄弟 Vector.为什么说是它兄弟呢?因为从容器的构造来说,Vec ...
- 了解AJAX
1.如何打开终端的快捷键 Window+R==>CMD==>ipconfig 动态页面:跟后台发生数据交互的页面. 前后台数据交互依赖的一项技术叫 ajax. 1. js的异步操作 (1) ...
- maven的项目目录解析
target文件夹用于存放项目编译后产生的class文件.
- html meta标签使用及属性介绍
自学前端开始,我对meta标签接触不多,主要把精力都集中在能显示出来的标签上,比如span.button.h1等等.有时候去查看一些知名网站的源码,发现head标签里有一大摞的meta. 今天就来学习 ...
- Python 强制停止多线程运行
强制停止多线程运行 by:授客 QQ:1033553122 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'shouke' ...
- Android项目实战(四十五):Zxing二维码切换横屏扫描
Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=".CaptureActivity" android: ...
- Android远程桌面助手之功能简介
外国友人录制的ARDC的使用简介,非常不错,介绍得很详尽.
- MongoDB 基础(2019年开篇)
MongoDB基础知识: 1.什么是MongoDB NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL". MongoDB是一个介于关系数据库和非关系数据库之 ...
- Go 定时任务
本文基于Golang Crontab 实现了一个Crontab Job Manager.更加容易使用,同时也能够满足更加复杂的场景. 仓储地址, 如果有用,欢迎点赞,欢迎讨论,欢迎找茬. 需求 在开发 ...