当前位置:网站首页>LeetCode 1186. 删除一次得到子数组最大和 每日一题
LeetCode 1186. 删除一次得到子数组最大和 每日一题
2022-07-07 15:32:00 【@小红花】
问题描述
给你一个整数数组,返回它的某个 非空 子数组(连续元素)在执行一次可选的删除操作后,所能得到的最大元素总和。换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最大的。
注意,删除一个元素后,子数组 不能为空。
示例 1:
输入:arr = [1,-2,0,3]
输出:4
解释:我们可以选出 [1, -2, 0, 3],然后删掉 -2,这样得到 [1, 0, 3],和最大。
示例 2:输入:arr = [1,-2,-2,3]
输出:3
解释:我们直接选出 [3],这就是最大和。
示例 3:输入:arr = [-1,-1,-1,-1]
输出:-1
解释:最后得到的子数组不能为空,所以我们不能选择 [-1] 并从中删去 -1 来得到 0。
我们应该直接选择 [-1],或者选择 [-1, -1] 再从中删去一个 -1。
提示:
1 <= arr.length <= 105
-104 <= arr[i] <= 104来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-subarray-sum-with-one-deletion
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
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 = Math.max(remain,delete + n);
remain = Math.max(0,remain) + n;
}
ans = Math.max(ans,remain);
ans = Math.max(ans,delete);
}
return ans;
}
}边栏推荐
- Tragedy caused by deleting the console statement
- What is the difference between IP address and physical address
- PHP has its own filtering and escape functions
- ByteDance Android gold, silver and four analysis, Android interview question app
- A tour of gRPC:03 - proto序列化/反序列化
- 水平垂直居中 方法 和兼容
- 47_ Contour lookup in opencv cv:: findcontours()
- HAVE FUN | “飞船计划”活动最新进展
- Introduction to ThinkPHP URL routing
- [designmode] template method pattern
猜你喜欢
随机推荐
深度监听 数组深度监听 watch
面向接口编程
Detailed explanation of several ideas for implementing timed tasks in PHP
JS 模块化
Laravel changed the session from file saving to database saving
Advanced C language -- function pointer
Talk about the realization of authority control and transaction record function of SAP system
使用JSON.stringify()去实现深拷贝,要小心哦,可能有巨坑
node:504报错
OpenGL personal notes
os、sys、random标准库主要功能
Temperature sensor chip used in temperature detector
Localstorage and sessionstorage
QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏
typescript ts基础知识之tsconfig.json配置选项
3000 words speak through HTTP cache
最新Android面试合集,android视频提取音频
Personal notes of graphics (4)
华东师大团队提出,具有DNA调控电路的卷积神经网络的系统分子实现
整理几个重要的Android知识,高级Android开发面试题
![[designmode] proxy pattern](/img/ed/642aebc7b49cbf4d30b517665b2438.png)






