leetcode1186 Maximum Subarray Sum with One Deletion
思路:
最大子段和的变体,前后两个方向分别扫一遍即可。
实现:
class Solution
{
public:
int maximumSum(vector<int>& arr)
{
int n = arr.size();
if (n == ) return arr[];
vector<int> f(n), b(n);
int minn = , sum = ;
for (int i = ; i < n; i++)
{
sum += arr[i];
f[i] = sum - minn;
minn = min(minn, sum);
}
minn = sum = ;
for (int i = n - ; i >= ; i--)
{
sum += arr[i];
b[i] = sum - minn;
minn = min(minn, sum);
}
int ans = *max_element(f.begin(), f.end());
for (int i = ; i < n; i++)
{
if (arr[i] > ) continue;
ans = max(ans, (i > ? f[i - ] : ) + (i < n - ? b[i + ] : ));
}
return ans;
}
}
leetcode1186 Maximum Subarray Sum with One Deletion的更多相关文章
- 【leetcode】1186. Maximum Subarray Sum with One Deletion
题目如下: Given an array of integers, return the maximum sum for a non-empty subarray (contiguous elemen ...
- Maximum Subarray Sum
Maximum Subarray Sum 题意 给你一个大小为N的数组和另外一个整数M.你的目标是找到每个子数组的和对M取余数的最大值.子数组是指原数组的任意连续元素的子集. 分析 参考 求出前缀和, ...
- [LeetCode] Maximum Subarray Sum
Dynamic Programming There is a nice introduction to the DP algorithm in this Wikipedia article. The ...
- LeetCode 53. Maximum Subarray(最大的子数组)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- 【LeetCode】最大子阵列 Maximum Subarray(贪婪&分治)
描述: Given an integer array nums, find the contiguous subarray (containing at least one number) which ...
- LeetCode Array Easy 53. Maximum Subarray 个人解法 和分治思想的学习
Description Given an integer array nums, find the contiguous subarray (containing at least one numbe ...
- [LeetCode] Maximum Size Subarray Sum Equals k 最大子数组之和为k
Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...
- Subarray Sum & Maximum Size Subarray Sum Equals K
Subarray Sum Given an integer array, find a subarray where the sum of numbers is zero. Your code sho ...
- Subarray Sum & Maximum Size Subarray Sum Equals K && Subarray Sum Equals K
Subarray Sum Given an integer array, find a subarray where the sum of numbers is zero. Your code sho ...
随机推荐
- 学到了林海峰,武沛齐讲的Day18 迭代
x='hello' gxr=iter(x) gxr=x.__iter__() print(next(gxr)) print(gxr.__next__()) iter()===__iter__ next ...
- GreenPlum 锁表以及解除锁定
最近遇到truncate表,无法清理的情况,在master节点查看加锁情况,并未加锁这种情况极有可能是segment节点相关表加了锁,所以遇到这种情况除了排查master节点的锁,所有的segment ...
- 十六.部署PXE网络装机
PXE组件及过程分析 • 需要哪些服务组件? – DHCP服务,分配IP地址.定位引导程序 – TFTP服务,提供引导程序下载 – HTTP服务,提供yum安装源 • 客户机应具备的条件 – 网卡芯片 ...
- bzoj 3999: [TJOI2015]旅游 LCT
没啥难的,inf 的值设小了调了半天~ code: #include <bits/stdc++.h> #define N 50003 #define lson t[x].ch[0] #de ...
- Linux swap的创建与配置
在Linux下,swap的作用类似Windows系统下的“虚拟内存”.当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况.Linux下的swap有两种实现形 ...
- linux系列(二十一):chmod命令
1.命令格式 chmod [-cfvR] [--help] [--version] mode file 2.命令功能 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3.命令参数 必要参 ...
- NetworkX系列教程(5)-查看graph的信息
小书匠Graph图论 有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了. 目录: 6.查看Graph的信息 6.1查看graph内节点,边的 6.2查看gr ...
- 【转】Sentry 入门实战
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题.它主要专注于持续集成.提高效率并且提升用户体验.Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在 ...
- webkit vs v8
我们知道不同浏览器用的不同的渲染引擎: Tridend(IE).Gecko(FF).WebKit(Safari,Chrome,Andriod浏览器) 当然 Chrome 重构了一下 WebKit 然后 ...
- zabbix (5) 用户、主机等创建
1.创建新用户: 管理---> 用户--->创建用户 在右上角用户群组这里可以按下拉菜单,为某个组创建用户,默认是all 点击创建用户以后,出现如下图: 2.创建组 管理--->用户 ...