当前位置: 首页 > news >正文

前缀和———最大子数组和

点击查看代码
//前缀和 ——> 快速求出数组中,某一段的区间和
//第一步:先预处理出来一个前缀和数组
//f[i] 表示:区间[1, i]中所有元素的和,f[i] = f[i - 1] + a[i]
//第二步:利用前缀和数组//注意事项:使用前缀和数组时, 下标必须从1开始计数(可以避免越界问题)//求数组中的最大子数组和#include <iostream>
// 引入头文件,用于LLONG_MIN(long long类型的最小值)
#include <climits>  using namespace std;const int N = 1e4 + 10;
long long f[N];  // 前缀和数组,f[i]表示前i个元素的和int main(){int n;cin >> n;int x;// 第一步:计算前缀和数组for(int i = 1; i <= n; i++){cin >> x;f[i] = f[i - 1] + x;}// 第二步:利用前缀和求最大子数组和long long ret = LLONG_MIN;  // 初始化为long long的最小值,避免溢出long long prevmin = f[0];   // 初始化为前缀和的第0项(即0)for(int i = 1; i <= n; i++){// 当前i位置的最大子数组和 = 前缀和f[i] - 之前最小的前缀和ret = max(ret, f[i] - prevmin);// 更新之前的最小前缀和(包含当前f[i])prevmin = min(prevmin, f[i]);}cout << ret << endl;return 0;
}
http://www.jsqmd.com/news/415548/

相关文章:

  • C++中的友元 之十
  • AI时代,单片机从业者还有未来吗?应该何去何从?
  • AI模型跑云端已经过时了!单片机上本地运行大模型的3大碾压优势
  • 工作总结-做好详细设计
  • G - 221 Subsequence
  • C++中的友元 之九
  • Educational Codeforces Round 187 个人题解
  • 进程间通信选择
  • 对于本地存储和分布式存储的看法
  • 我对mysql的一些理解
  • C++中的友元 之八
  • 2026Q1石家庄别墅装修综合排名TOP10(绿色智能版靠谱实测推荐) - 品牌智鉴榜
  • greenplum安装部署-CentOS7.9
  • P1880 [NOI1995] 石子合并
  • 搭建一套.net下能落地的飞书考勤系统
  • LDSC安装
  • 有趣的代码-值传递和引用传递
  • 洛谷 B2161:十进制转二进制 ← 字符串 / 栈
  • Educational Codeforces Round 187 解题报告
  • openclaw安装对接配置
  • 洛谷P3375 【模板】KMP字符串匹配
  • B002 排序 双指针 哈希表 两数之和到K数之和 1640~1642 CSES
  • 110kV三段式相间距离保护参数整定计算设计simulink仿真
  • 【每日一题】LeetCode 1404. 将二进制表示减到 1 的步骤数
  • 【村儿网通】把 Scaled Dot-Product Attention 展开写一遍
  • Andrew Stankevich Contest 44 (ASC 44) 总结
  • nohup ./webserver
  • 基于Lyapunov的控制器设计用于自主水下车辆(AUV)的轨迹跟踪,对于欠驱动的自主水下车辆(AUV)进行二维轨迹跟踪的仿真Lyapunov控制器设计附Simulink仿真、Matlab代码
  • 基于LSTM和SVM的设备故障诊断附Matlab代码
  • C++中的友元 之七