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

LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和)

题目:

链接:LeetCode 1749. 任意子数组和的绝对值的最大值
难度:中等

给你一个整数数组 nums 。一个子数组 [numsl, numsl+1, …, numsr-1, numsr] 的 和的绝对值 为 abs(numsl + numsl+1 + … + numsr-1 + numsr) 。

请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值 。

abs(x) 定义如下:

  • 如果 x 是负整数,那么 abs(x) = -x 。
  • 如果 x 是非负整数,那么 abs(x) = x 。

示例 1:

输入:nums = [1,-3,2,3,-4]
输出:5
解释:子数组 [2,3] 和的绝对值最大,为 abs(2+3) = abs(5) = 5 。

示例 2:

输入:nums = [2,-5,1,-4,3,-2]
输出:8
解释:子数组 [-5,1,-4] 和的绝对值最大,为 abs(-5+1-4) = abs(-8) = 8 。

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

前缀和:

前缀和的最大值减最小值即为子数组和的绝对值最大值。

代码:

class Solution {
public:int maxAbsoluteSum(vector<int>& nums) {int n = nums.size();vector<int> preSum(n + 1);int minSum = 0, maxSum = 0;for(int i = 1; i <= n; i++) {preSum[i] = preSum[i - 1] + nums[i - 1];minSum = min(minSum, preSum[i]);maxSum = max(maxSum, preSum[i]);}return maxSum - minSum;  // 前缀和最大值-最小值}
};

时间复杂度O(N)。
空间复杂度O(N)。

http://www.lryc.cn/news/116647.html

相关文章:

  • python爬虫相关
  • PAT(Advanced Level) Practice(with python)——1023 Have Fun with Numbers
  • springboot vue 初步集成onlyoffice
  • Win10语言设置 - 显示语言和应用语言
  • RxJava的前世【RxJava系列之设计模式】
  • sql 语句 字段字符串操作
  • 【网络工程】网络流量分析工具 Wireshark
  • 数据库总结
  • 虹科方案 | 成都大运会进行时,保障大型活动无线电安全需要…
  • 【C语言】扫雷 小游戏
  • Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)
  • swagger 3.0 学习笔记
  • 07 |「异步任务」
  • LoRaWan网关设计之入门指南
  • 互联网电影购票选座后台管理系统源码开发
  • [ K8S ] yaml文件讲解
  • 【《深入浅出计算机网络》学习笔记】第1章 概述
  • 二、Linux中权限、shell命令及运行原理
  • 【RabbitMQ上手——单实例安装5种简单模式实现通讯过程】
  • python+pytest接口自动化之HTTP协议基础
  • 【技巧】如何保护PowerPoint不被改动?
  • 【APITable】教程:创建并运行一个自建小程序
  • 使用MyBatis操作数据库
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--功能实现[五]
  • Qt应用程序窗体最大化失效问题的解决方法
  • python怎么判断变量的数据类型
  • FastAPI 构建 API 高性能的 web 框架(二)
  • 如何实现 Java SpringBoot 自动验证入参数据的有效性
  • golang学习随记
  • 【PCL-6】PCL基于凹凸型的分割算法(LCCP)