🗒️1749. 任意子数组和的绝对值的最大值
2025-5-1
| 2025-5-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
May 1, 2025 01:18 AM
给你一个整数数组 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.1 前缀和基础

暴力做法
将绝对值拆分为子数组最大值和子数组最小值,然后对子数组的最大值和最小值使用绝对值处理,比较这两者的值。这样问题就转换为——在存在负数的数组中,找出子数组的最大值和最小值。
这好像是动态规划的求法,怎么用前缀和呢??????
原来很简单,只需要转换思路就可以了。
其实,不需要二重循环的,直接找出前缀和中的最大值和最小值进行计算即可。
被自己蠢哭了!!!!

📎 参考

  • 【题单】常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树)
  • 2389. 和有限的最长子序列3152. 特殊数组 II
    Loading...