网易首页 > 网易号 > 正文 申请入驻

2026-05-05:分割的最大得分。用go语言,给定一个长度为 n 的整数数组 nums。需要在所有满足 0 ≤ i < n−1 的位置中选择一...

0
分享至

2026-05-05:分割的最大得分。用go语言,给定一个长度为 n 的整数数组 nums。需要在所有满足 0 ≤ i < n−1 的位置中选择一个切分点 i,并计算该切分点的得分。

对每个切分点 i:

  • • 先计算前缀和:prefixSum(i) = nums[0] + nums[1] + … + nums[i]

  • • 再计算后缀最小值:suffixMin(i) = 在 nums[i+1] 到 nums[n−1] 这段中的最小元素

  • • 分数定义为:score(i) = prefixSum(i) − suffixMin(i)

最后,要求返回所有这些切分点 i 中 score(i) 的最大值。

2 <= nums.length <= 100000。

-1000000000 <= nums[i] <= 1000000000。

输入: nums = [10,-1,3,-4,-5]。

输出: 17。

解释:

最优的分割下标是 i = 2,score(2) = prefixSum(2) - suffixMin(2) = (10 + (-1) + 3) - (-5) = 17。

题目来自力扣3788。

解题过程详细拆解 一、明确题目核心规则

  1. 1.切分点范围:数组长度为5,切分点i只能是0、1、2、3(满足0 ≤ i < 4,保证前后都有元素);

  2. 2.单个切分点得分计算

  • • 前缀和:nums[0]nums[i]的总和;

  • • 后缀最小值:nums[i+1]到数组末尾的最小数字;

  • • 得分 = 前缀和 - 后缀最小值;

3.目标:找出所有切分点中最大的得分

二、整体解题步骤(分两大阶段) 第一阶段:计算数组的总前缀和

首先把数组所有元素全部相加,得到一个总累加和,这个总和是后续计算所有切分点前缀和的基础。

  • • 数组元素:10、-1、3、-4、-5

  • • 总累加和 = 10 + (-1) + 3 + (-4) + (-5) =3

第二阶段:从后往前遍历,逐个计算所有切分点的得分

我们从数组最后一个元素开始,倒着向前遍历(保证前缀始终至少有1个元素),遍历过程中做三件事:

  1. 1. 用总累加和减去当前遍历到的元素,得到当前切分点的前缀和

  2. 2. 持续更新后缀最小值(记录当前及右侧所有元素的最小值);

  3. 3. 计算当前切分点的得分,记录遍历过程中的最大得分

三、逐一遍历切分点的详细过程

数组索引:0(10)、1(-1)、2(3)、3(-4)、4(-5)
总累加和初始值:3
后缀最小值初始值:极大值(比所有数字都大)
最大得分初始值:极小值(比所有可能得分都小)

第一步:遍历索引4(元素-5)

  1. 1. 总累加和 减去 元素-5 → 3 - (-5) = 8(这是切分点i=3的前缀和:10-1+3-4=8);

  2. 2. 更新后缀最小值:当前后缀最小值(极大值)和-5比较,取更小的-5;

  3. 3. 计算得分:8 - (-5) = 13;

  4. 4. 记录最大得分:当前最大为13。

第二步:遍历索引3(元素-4)
  1. 1. 总累加和 减去 元素-4 → 8 - (-4) = 12(这是切分点i=2的前缀和:10-1+3=12);

  2. 2. 更新后缀最小值:当前后缀最小值(-5)和-4比较,取更小的-5;

  3. 3. 计算得分:12 - (-5) = 17;

  4. 4. 记录最大得分:17>13,更新最大得分为17。

第三步:遍历索引2(元素3)
  1. 1. 总累加和 减去 元素3 → 12 - 3 = 9(这是切分点i=1的前缀和:10-1=9);

  2. 2. 更新后缀最小值:当前后缀最小值(-5)和3比较,取更小的-5;

  3. 3. 计算得分:9 - (-5) = 14;

  4. 4. 记录最大得分:14<17,最大得分保持17。

第四步:遍历索引1(元素-1)
  1. 1. 总累加和 减去 元素-1 → 9 - (-1) = 10(这是切分点i=0的前缀和:10);

  2. 2. 更新后缀最小值:当前后缀最小值(-5)和-1比较,取更小的-5;

  3. 3. 计算得分:10 - (-5) = 15;

  4. 4. 记录最大得分:15<17,最大得分保持17。

四、最终结果

遍历完所有切分点后,最大得分是17,与题目输出一致。

五、时间复杂度与额外空间复杂度 1. 时间复杂度

  • • 第一步计算总累加和:遍历整个数组,时间复杂度为O(n)(n为数组长度);

  • • 第二步倒序遍历计算得分:再次遍历整个数组,时间复杂度为O(n)

  • • 总时间复杂度:O(n)(线性时间,能高效处理n=10⁵的最大数据量)。

2. 额外空间复杂度
  • • 整个过程只使用了固定数量的变量(总累加和、后缀最小值、最大得分等);

  • • 没有创建任何与数组长度n相关的额外数组、集合等数据结构;

  • • 总额外空间复杂度:O(1)(常数级空间)。

总结
  1. 1. 解题核心:倒序遍历+动态维护前缀和与后缀最小值,避免重复计算,保证高效性;

  2. 2. 时间复杂度:O(n),适合处理十万级长度的数组;

  3. 3. 额外空间复杂度:O(1),仅使用固定变量,无额外内存开销。

Go完整代码如下:

package main

import (
"fmt"
"math"
)

func maximumScore(nums []int) int64 {
preSum := 0
for _, x := range nums {
preSum += x
}

ans := math.MinInt
sufMin := math.MaxInt
for i := len(nums) - 1; i > 0; i-- { // 保证前缀至少有一个数
preSum -= nums[i] // 撤销
sufMin = min(sufMin, nums[i])
ans = max(ans, preSum-sufMin)
}
return int64(ans)
}

func main() {
nums := []int{10, -1, 3, -4, -5}
result := maximumScore(nums)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

from typing import List

def maximumScore(nums: List[int]) -> int:
pre_sum = sum(nums)
ans = float('-inf')
suf_min = float('inf')
for i in range(len(nums) - 1, 0, -1): # 保证前缀至少有一个数
pre_sum -= nums[i] # 撤销
suf_min = min(suf_min, nums[i])
ans = max(ans, pre_sum - suf_min)
return int(ans)

def main():
nums = [10, -1, 3, -4, -5]
result = maximumScore(nums)
print(result)

if __name__ == "__main__":
main()

C++完整代码如下:

  





using namespace std;

long long maximumScore(vector& nums) {
int preSum = 0;
for (int x : nums) {
preSum += x;
}

int ans = INT_MIN;
int sufMin = INT_MAX;

for (int i = nums.size() - 1; i > 0; i--) { // 保证前缀至少有一个数
preSum -= nums[i]; // 撤销
sufMin = min(sufMin, nums[i]);
ans = max(ans, preSum - sufMin);
}

return (long long)ans;
}

int main() {
vector nums = {10, -1, 3, -4, -5};
long long result = maximumScore(nums);
cout << result << endl;
return 0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小泽开启巴尔干外交布局 中东漩涡又现新信号

小泽开启巴尔干外交布局 中东漩涡又现新信号

西楼饮月
2026-08-07 19:18:58
特谢拉缺阵,申花全新首发11人变阵,杨帅李松益二选一,米内罗成关键

特谢拉缺阵,申花全新首发11人变阵,杨帅李松益二选一,米内罗成关键

替补席看球
2026-08-07 15:52:35
美国要变天了?一个比特朗普更难缠的80后,已经掌握了共和党

美国要变天了?一个比特朗普更难缠的80后,已经掌握了共和党

萧嚉影视解说
2026-04-14 16:52:43
2026年8月了,禁酒令及宴请规定公职人员下班聚餐和饮酒还违规吗

2026年8月了,禁酒令及宴请规定公职人员下班聚餐和饮酒还违规吗

白米饭怎么吃
2026-08-07 21:43:46
领袖身亡消息被外泄,高层紧急碰头!伊朗爆发内讧,外长遭围攻?

领袖身亡消息被外泄,高层紧急碰头!伊朗爆发内讧,外长遭围攻?

白色得季节
2026-08-07 16:43:54
申花5-3夺首胜难掩门将连丢3球,换帅在即保级告急

申花5-3夺首胜难掩门将连丢3球,换帅在即保级告急

梦忆之浅
2026-08-07 16:24:37
杭州大妈沉迷广场舞,丈夫病重不管不顾,直到去过户房产时傻眼了

杭州大妈沉迷广场舞,丈夫病重不管不顾,直到去过户房产时傻眼了

不易一字
2025-03-10 11:26:55
延伸链条,老区“长”出新产业(经济聚焦·老区新产业)

延伸链条,老区“长”出新产业(经济聚焦·老区新产业)

金台资讯
2026-08-06 06:40:23
台风“白海豚”即将登陆,山东或将迎来降雨。

台风“白海豚”即将登陆,山东或将迎来降雨。

闪电新闻
2026-08-07 17:45:17
小波特和女友近照,2亿肥约到期,被交易打成巨星,女友是超模

小波特和女友近照,2亿肥约到期,被交易打成巨星,女友是超模

大西体育
2026-08-07 23:17:20
曾琦医生风波定论,43岁眼科专家降职留证,单身母亲重获新生

曾琦医生风波定论,43岁眼科专家降职留证,单身母亲重获新生

鬼菜生活
2026-08-05 14:58:39
我给情人80万创业,10年后我破产,妻子选择离婚,情人:我来养你

我给情人80万创业,10年后我破产,妻子选择离婚,情人:我来养你

千秋文化
2026-06-21 19:42:56
中国将迎来 “死亡高峰” 根本不是天灾,全是几代人种下的因果

中国将迎来 “死亡高峰” 根本不是天灾,全是几代人种下的因果

爱史纪
2026-08-06 12:53:49
医生多次劝告:一旦吃上他达拉非,5件事就不要做了,别害了自己

医生多次劝告:一旦吃上他达拉非,5件事就不要做了,别害了自己

展望云霄
2026-08-06 18:53:05
俄方:若想和平解决俄乌冲突 欧洲应停止援乌

俄方:若想和平解决俄乌冲突 欧洲应停止援乌

财联社
2026-08-07 04:40:05
刘玉栋现状:全家定居福州,55岁沉迷海钓,哮喘儿子没有走篮球路

刘玉栋现状:全家定居福州,55岁沉迷海钓,哮喘儿子没有走篮球路

林子说事
2026-08-07 11:01:30
最新后续!威胁浙江捐日军罪证少年的嫌疑人,警方传唤,大快人心

最新后续!威胁浙江捐日军罪证少年的嫌疑人,警方传唤,大快人心

老娱记啊
2026-08-07 14:04:43
你发现没有:凡是补习班排满假期的孩子,高年级时80%成绩都崩盘

你发现没有:凡是补习班排满假期的孩子,高年级时80%成绩都崩盘

户外阿毽
2026-08-07 16:33:57
16架中国军机抵伊朗引关注,外交部回应,巴铁表态

16架中国军机抵伊朗引关注,外交部回应,巴铁表态

全球风情大揭秘
2026-08-05 10:04:14
河南公安机关查实“三支一扶”招募笔试存在组织作弊犯罪行为,作案流程曝光:嫌疑人勾结考务人员提前获取试卷,立即答题,用电子设备点对点传答案给考生

河南公安机关查实“三支一扶”招募笔试存在组织作弊犯罪行为,作案流程曝光:嫌疑人勾结考务人员提前获取试卷,立即答题,用电子设备点对点传答案给考生

每日经济新闻
2026-08-08 00:39:43
2026-08-08 05:19:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1380文章数 78关注度
往期回顾 全部

科技要闻

突然涨价,"只收电费钱"的梁文锋,变了吗

头条要闻

2岁患儿就诊死亡首诊医生获刑 不少医生为其鸣不平

头条要闻

2岁患儿就诊死亡首诊医生获刑 不少医生为其鸣不平

体育要闻

去年信誓旦旦3000万 今年NBA查无此人

娱乐要闻

周也热恋结束,六个字暴露单身状态

财经要闻

腾讯WorkBuddy领跑AI办公 阿里字节急了?

汽车要闻

越7全球首秀 传祺开始进攻方盒子越野

态度原创

艺术
教育
房产
旅游
公开课

艺术要闻

别人画皮他画魂,这个在修道院关了18年的男人,把每一具肉体都画成了圣像

教育要闻

家门口的 “华附联盟”学校,来了!

房产要闻

单日狂卖35亿!两大央企重仓,三亚土拍又爆了!

旅游要闻

太邑火把节,非有“玩常”

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版