当前位置:网站首页>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;
}
}边栏推荐
- Introduction and use of gateway
- Process from creation to encapsulation of custom controls in QT to toolbar (I): creation of custom controls
- skimage学习(3)——使灰度滤镜适应 RGB 图像、免疫组化染色分离颜色、过滤区域最大值
- 作为Android开发程序员,android高级面试
- 如何选择合适的自动化测试工具?
- [designmode] flyweight pattern
- SqlServer2014+: 创建表的同时创建索引
- QT picture background color pixel processing method
- [designmode] facade patterns
- skimage学习(3)——Gamma 和 log对比度调整、直方图均衡、为灰度图像着色
猜你喜欢
随机推荐
LeetCode 312. 戳气球 每日一题
打造All-in-One应用开发平台,轻流树立无代码行业标杆
QT picture background color pixel processing method
Direct dry goods, 100% praise
QT 图片背景色像素处理法
一文读懂数仓中的pg_stat
字节跳动Android金三银四解析,android面试题app
Interface oriented programming
OpenGL personal notes
As an Android Developer programmer, Android advanced interview
dapp丨defi丨nft丨lp单双币流动性挖矿系统开发详细说明及源码
C语言进阶——函数指针
Talk about the realization of authority control and transaction record function of SAP system
Inner monologue of accidental promotion
typescript ts基础知识之tsconfig.json配置选项
QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏
skimage学习(3)——使灰度滤镜适应 RGB 图像、免疫组化染色分离颜色、过滤区域最大值
Pisa-Proxy SQL 解析之 Lex & Yacc
【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid
字节跳动高工面试,轻松入门flutter








