news 2026/8/27 9:08:27

LeetCode 3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小

【LetMeFly】3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小

力扣题目链接:https://leetcode.cn/problems/divide-an-array-into-subarrays-with-minimum-cost-i/

给你一个长度为n的整数数组nums

一个数组的代价是它的第一个元素。比方说,[1,2,3]的代价是1[3,4,1]的代价是3

你需要将nums分成3连续且没有交集的子数组。

请你返回这些子数组的最小代价总和

示例 1:

输入:nums = [1,2,3,12]输出:6解释:最佳分割成 3 个子数组的方案是:[1] ,[2] 和 [3,12] ,总代价为 1 + 2 + 3 = 6 。 其他得到 3 个子数组的方案是: - [1] ,[2,3] 和 [12] ,总代价是 1 + 2 + 12 = 15 。 - [1,2] ,[3] 和 [12] ,总代价是 1 + 3 + 12 = 16 。

示例 2:

输入:nums = [5,4,3]输出:12解释:最佳分割成 3 个子数组的方案是:[5] ,[4] 和 [3] ,总代价为 5 + 4 + 3 = 12 。 12 是所有分割方案里的最小总代价。

示例 3:

输入:nums = [10,3,1,1]输出:12解释:最佳分割成 3 个子数组的方案是:[10,3] ,[1] 和 [1] ,总代价为 10 + 1 + 1 = 12 。 12 是所有分割方案里的最小总代价。

提示:

  • 3 <= n <= 50
  • 1 <= nums[i] <= 50

解题方法:排序 OR 维护最小次小

不难发现,n u m s [ 0 ] nums[0]nums[0]必被第一个子数组选中,后续数组中可以分别将最小值和次小值作为后面两个数组的起始元素。

排序法

n u m s numsnums除第一个元素外的其他部分排序,返回数组前三个元素就好了。

维护最小次小

两个变量m i n 1 min1min1m i n 2 min2min2分别维护除第一个元素外其他部分的最小值和次小值,遍历过程中:

  • 若元素小于等于最小值则令次小值等于最小值,最小值等于该元素
  • 否则,若元素小于次小值,则令次小值等于该元素

时空复杂度分析

  • 时间复杂度:排序O ( n log ⁡ n ) O(n\log n)O(nlogn)、最小次小O ( n ) O(n)O(n)
  • 空间复杂度:排序O ( log ⁡ n ) O(\log n)O(logn)、最小次小O ( 1 ) O(1)O(1)

AC代码

C++ - 排序
/* * @LastEditTime: 2026-02-01 09:51:34 */classSolution{public:intminimumCost(vector<int>&nums){sort(nums.begin()+1,nums.end());returnnums[0]+nums[1]+nums[2];}};
C++ - 最小次小
/* * @LastEditTime: 2026-02-01 09:56:48 */classSolution{public:intminimumCost(vector<int>&nums){intmin1=100,min2=100;for(inti=1;i<nums.size();i++){if(nums[i]<=min1){min2=min1;min1=nums[i];}elseif(nums[i]<min2){min2=nums[i];}}returnnums[0]+min1+min2;}};
Python - 排序一行版
''' LastEditTime: 2026-02-01 10:06:51 '''fromtypingimportListclassSolution:defminimumCost(self,nums:List[int])->int:returnnums[0]+sum(sorted(nums[1:])[:2])

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

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

Z-Image-Turbo自动重启机制揭秘,服务稳定性拉满

Z-Image-Turbo自动重启机制揭秘&#xff0c;服务稳定性拉满 你有没有遇到过这样的情况&#xff1a;AI绘画服务正跑得好好的&#xff0c;突然页面卡死、接口返回502、Gradio界面一片空白——刷新十次都不见恢复&#xff1f;更糟的是&#xff0c;日志里只留下几行报错就没了下文…

作者头像 李华
网站建设 2026/8/25 8:36:09

Phi-4-mini-reasoning应用:基于ollama的智能问答系统搭建

Phi-4-mini-reasoning应用&#xff1a;基于ollama的智能问答系统搭建 Phi-4-mini-reasoning 是一个轻量却锋利的推理型语言模型——它不靠参数堆砌&#xff0c;而靠数据精炼&#xff1b;不求面面俱到&#xff0c;但求逻辑严密。当你需要一个能在边缘设备上快速响应、在数学推演…

作者头像 李华
网站建设 2026/8/27 3:21:25

【AI智能体】10-Agentic AI vs AI Agent:深度对比两者的异同点

引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;Agentic AI和AI Agent是两个经常被提及但容易混淆的概念。理解这两者的区别对于深入探讨AI技术的发展和应用具有重要意义。 1. 定义与核心特点对比 特性AI Agent&#xff08;AI智能体/代理&#xff09;Agentic AI…

作者头像 李华
网站建设 2026/8/25 14:19:20

播客内容结构化处理,自动分割+情感标注一步到位

播客内容结构化处理&#xff0c;自动分割情感标注一步到位 播客越来越火&#xff0c;但内容价值常被埋没在冗长音频里——你有没有过这样的困扰&#xff1a;想快速定位嘉宾的愤怒观点、提取听众笑声最多的段落、或者把一段30分钟的深度对话拆成带情绪标签的知识卡片&#xff1…

作者头像 李华
网站建设 2026/8/21 12:37:18

DAMO-YOLO智能视觉探测系统部署教程:TinyNAS+赛博朋克UI一键启动

DAMO-YOLO智能视觉探测系统部署教程&#xff1a;TinyNAS赛博朋克UI一键启动 1. 这不是普通的目标检测工具&#xff0c;而是一套能“看见未来”的视觉系统 你有没有试过把一张街景照片上传后&#xff0c;几秒内就看到人、车、路牌、甚至流浪猫都被精准框出来&#xff0c;而且每…

作者头像 李华
网站建设 2026/8/21 12:36:51

好写作AI:理论框架理还乱?让AI当你的“学术乐高大师”!

各位被各种“理论”“模型”“范式”绕成蚊香眼的学术建筑工&#xff0c;请诚实一点&#xff1a;你的论文理论框架&#xff0c;是不是也像心血来潮买的乐高——零件铺了一地&#xff0c;说明书却不知所踪&#xff1f;想搭个高楼&#xff0c;结果拼出来像个抽象艺术&#xff1f;…

作者头像 李华