首页 > 试题广场 >

子数组绝对值的最大值

[编程题]子数组绝对值的最大值
  • 热度指数:619 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红拿到了一个长为 n 的数组 ,她想知道子数组和的绝对值的最大值是多少,请你帮帮她。

输入描述:
第一行输入一个整数 n \left(1 \leqq n \leqq 2\times10^5 \right)
第二行输入  个整数


输出描述:
输出一个整数,代表子数组和的绝对值的最大值。
示例1

输入

5
3 -2 1 -4 4

输出

5
头像 此在Dasein
发表于 2025-11-15 19:22:41
子数组的和可以表示为两个前缀和的差值。 设 为数组 的前缀和,即 ,并定义 。 那么,从索引 到 的子数组和 可以表示为: 我们要找的最大值是 。 根据绝对值的性质, 实际上是所有前缀和(包括 到 )中任意两个值之间的最大差值。 要最大化 ,我们只需要找到所有前缀和中的最大值和最小值, 展开全文
头像 Ldh1315109
发表于 2025-11-11 18:00:39
fmin = lambda x, y: x if x < y else y fmax = lambda x, y: x if x > y else y def solve(testcase): n = II() A = LII() res = 0 m, 展开全文
头像 周康禧
发表于 2025-12-10 22:39:45
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair< 展开全文
头像 金刚侠
发表于 2025-12-20 17:08:00
#include <iostream> using namespace std; #include <vector> #include <algorithm> int main() { ios::sync_with_stdio(false); ci 展开全文
头像 自由的风0450
发表于 2025-11-14 13:44:16
#include <iostream> #include<vector> using namespace std; int main() { int n; cin>>n; vector<int>a(n); for(in 展开全文
头像 Drink0318
发表于 2025-12-22 09:56:01
import sys n=int(input()) a=list(map(int,input().split())) sum=0 M,m=0,0 for i in range(n): # 所有前缀和(包括S0到Sn )中任意两个值之间的最大差值。 #即找到maxSum与minSum其 展开全文