当前位置:网站首页>LeetCode 1186. Delete once to get the sub array maximum and daily question
LeetCode 1186. Delete once to get the sub array maximum and daily question
2022-07-07 16:59:00 【@Little safflower】
Problem description
Give you an array of integers , Return one of its Non empty Subarray ( Continuous element ) After performing an optional delete operation , The maximum sum of elements that can be obtained . let me put it another way , You can choose a sub array from the original array , And you can decide whether to delete an element from it ( It can only be deleted once ),( After deleting ) There should be at least one element in the subarray , Then the subarray ( be left over ) The sum of the elements of is the largest of all subarrays .
Be careful , After deleting an element , Subarray Can't be empty .
Example 1:
Input :arr = [1,-2,0,3]
Output :4
explain : We can choose [1, -2, 0, 3], And then delete -2, In this way, I get [1, 0, 3], And the biggest .
Example 2:Input :arr = [1,-2,-2,3]
Output :3
explain : Let's just pick [3], This is the maximum sum .
Example 3:Input :arr = [-1,-1,-1,-1]
Output :-1
explain : The resulting subarray cannot be empty , So we can't choose [-1] And delete -1 To get 0.
We should choose directly [-1], Or choose [-1, -1] Then delete one from it -1.
Tips :
1 <= arr.length <= 105
-104 <= arr[i] <= 104source : Power button (LeetCode)
link :https://leetcode.cn/problems/maximum-subarray-sum-with-one-deletion
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Java
class Solution {
public int maximumSum(int[] arr) {
int len = arr.length;
int remain = arr[0];
int delete = 0;
int ans = remain;
for(int i = 1;i < len;i++){
int n = arr[i];
if(n >= 0){
remain = Math.max(0,remain) + n;
delete = delete + n;
}else {
// Delete this time , Or delete the previous element
delete = Math.max(remain,delete + n);
remain = Math.max(0,remain) + n;
}
ans = Math.max(ans,remain);
ans = Math.max(ans,delete);
}
return ans;
}
}
边栏推荐
猜你喜欢
Personal notes of graphics (1)
DNS 系列(一):为什么更新了 DNS 记录不生效?
最新2022年Android大厂面试经验,安卓View+Handler+Binder
Master this set of refined Android advanced interview questions analysis, oppoandroid interview questions
"The" "PIP" "entry cannot be recognized as the name of a cmdlet, function, script file, or runnable program."
[designmode] facade patterns
Personal notes of graphics (3)
字节跳动Android面试,知识点总结+面试题解析
Personal notes of graphics (4)
两类更新丢失及解决办法
随机推荐
QT picture background color pixel processing method
Pisa-Proxy SQL 解析之 Lex & Yacc
LeetCode 1696. 跳跃游戏 VI 每日一题
Read PG in data warehouse in one article_ stat
The team of East China Normal University proposed the systematic molecular implementation of convolutional neural network with DNA regulation circuit
Three. JS series (1): API structure diagram-1
Imitate the choice of enterprise wechat conference room
【图像传感器】相关双采样CDS
os、sys、random标准库主要功能
值得一看,面试考点与面试技巧
LeetCode 120. 三角形最小路径和 每日一题
Personal notes of graphics (4)
第九届 蓝桥杯 决赛 交换次数
Temperature sensor chip used in temperature detector
OpenGL personal notes
LeetCode 1043. 分隔数组以得到最大和 每日一题
【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid
记录Servlet学习时的一次乱码
作为Android开发程序员,android高级面试
The process of creating custom controls in QT to encapsulating them into toolbars (II): encapsulating custom controls into toolbars