news 2026/5/30 17:12:17

解决leetcode第3826题.最小分割分数问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
解决leetcode第3826题.最小分割分数问题

3826.最小分割分数

难度:困难

问题描述:

给你一个整数数组nums和一个整数k。

你的任务是将nums分割成恰好k个子数组,并返回所有有效分割方案中最小可能的分数。

一个分割方案的分数是其所有子数组值的总和。

子数组的值定义为sumArr*(sumArr+1)/2,其中sumArr是该子数组元素的总和。

子数组是数组中连续的非空元素序列。

示例1:

输入:nums=[5,1,2,1],k=2

输出:25

解释:

我们必须将数组分割成k=2个子数组。一种最优方案是[5]和[1,2,1]。

第一个子数组的sumArr=5,value=5×6/2=15。

第二个子数组的sumArr=1+2+1=4,value=4×5/2=10。

该分割方案的分数为15+10=25,这是可能的最小分数。

示例2:

输入:nums=[1,2,3,4],k=1

输出:55

解释:

由于必须分割成k=1个子数组,所有元素都属于同一个子数组:[1,2,3,4]。

该子数组的sumArr=1+2+3+4=10,value=10×11/2=55。

该分割方案的分数为55,这是可能的最小分数。

示例3:

输入:nums=[1,1,1],k=3

输出:3

解释:

我们必须将数组分割成k=3个子数组。唯一的有效分割方案是[1],[1],[1]。

每个子数组的sumArr=1,value=1×2/2=1。

该分割方案的分数为1+1+1=3,这是可能的最小分数。

提示:

1<=nums.length<=1000

1<=nums[i]<=104

1<=k<=nums.length

问题分析:

将nums数组分割成恰好k个子数组,则这k个子数组的长度和必然等nums的长度,把数组nums的长度设为n,这个问题就可以抽象为如何把n分成k个数之和,把各种分法找出之后,再将每一种分法解析为相应的子数组,并求出对应的分数,最后在其中找到最小分数即可。

程序如下:

#把n分成k个数之和,返回各种分法 def get_division_method(n,k): if k==1: return [[n]] elif k==2: t=[] for i in range(1,n): t.append([i,n-i]) return t else: t=[] for i in range(1,n): m=get_division_method(n-i,k-1) for j in m: j.append(i) t.append(j) return t #根据一个分解方案解析生成对应的子数组并返回 def analysis_plan(nums,a): t=[] k=0 for i in a: b=nums[k:k+i] t.append(b) k=k+i return t #计算一个子数组的分数,并返回 def get_score(sub_array): s=sum(sub_array) return s*(s+1)/2 #主程序 nums=eval(input('pls input nums=')) k=int(input('pls input k=')) n=len(nums) a=get_division_method(n,k) score=[] for i in a: t=analysis_plan(nums,i) s=0 for j in t: s+=get_score(j) score.append([t,s]) score.sort(key=lambda x:x[1]) print(f'最优方案是{score[0][0]},该分割方案的分数为{int(score[0][1])}')

运行实例一

pls input nums=[1,2,3]

pls input k=1

最优方案是[[1, 2, 3]],该分割方案的分数为21

运行实例二

pls input nums=[1,2,3,4,5]

pls input k=2

最优方案是[[1, 2, 3], [4, 5]],该分割方案的分数为66

运行实例三

pls input nums=[5,4,2,1]

pls input k=3

最优方案是[[5], [4], [2, 1]],该分割方案的分数为31

运行实例四

pls input nums=[1,3,5,7,9]

pls input k=4

最优方案是[[1, 3], [5], [7], [9]],该分割方案的分数为98

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 13:25:02

墨蝌实名认证超全教程!附宝藏 IPA 重签名工具安利

还在纠结 IPA 重签名工具怎么选&#xff1f;实名认证步骤太复杂&#xff1f;今天就给大家手把手拆解墨蝌平台实名认证流程&#xff0c;再安利这款超好用的工具网站 ——墨蝌官网&#xff1a;https://www.moooke.com/ &#xff0c;Win 系统专属&#xff0c;效率党直接冲&#xf…

作者头像 李华
网站建设 2026/5/30 3:32:23

新手小白花几个月勇敢裸辞转行网络安全

我是 25 岁转行学网络安全的。说实在&#xff0c;转行就是奔着挣钱去的。希望我的经历可以给想转行的朋友带来一点启发和借鉴。 先简单介绍下个人背景&#xff0c;三流大学毕业&#xff0c;物流专业&#xff0c;学习能力一般&#xff0c;没啥特别技能&#xff0c;反正就很普通…

作者头像 李华
网站建设 2026/5/28 22:48:50

解决Terminator终端中ERROR、WARN日志不显示颜色的问题

问题现象在Terminator或默认终端里&#xff0c;发现 [WARN] 和 [ERROR] 日志没有高亮颜色&#xff0c;全是白色的&#xff0c;无法快速定位问题。解决方案核心&#xff1a; 添加一个环境变量&#xff0c;强制ROS2日志系统输出颜色。打开你的Terminator或者系统自带的终端。直接…

作者头像 李华
网站建设 2026/5/28 14:16:43

数字资产护航者崛起,网页域名保护2032年将达275.8亿市场规模

2025-2032全球网页与域名保护市场&#xff1a;云化与AI驱动&#xff0c;安全韧性成竞争核心据恒州诚思调研统计&#xff0c;2025年全球网页与域名保护市场规模约106.4亿元&#xff0c;预计未来将持续保持平稳增长态势&#xff0c;至2032年市场规模将接近275.8亿元&#xff0c;未…

作者头像 李华
网站建设 2026/5/29 21:39:28

2026必备!8个降AIGC平台推荐 千笔·降AIGC助手解决论文AI率过高难题

AI降重工具&#xff0c;如何让论文更自然&#xff1f; 随着人工智能技术的飞速发展&#xff0c;越来越多的学术写作开始依赖AI工具进行辅助。然而&#xff0c;随之而来的AIGC率过高问题也成为了许多自考学生和研究者面临的难题。如何在保持论文内容准确性和逻辑性的同时&#…

作者头像 李华