news 2026/1/10 2:48:10

力扣刷题:文件组合

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:文件组合

题目:
待传输文件被切分成多个部分,按照原排列顺序,每部分文件编号均为一个 正整数(至少含有两个文件)。传输要求为:连续文件编号总和为接收方指定数字 target 的所有文件。请返回所有符合该要求的文件传输组合列表。

注意,返回时需遵循以下规则:

每种组合按照文件编号 升序 排列;
不同组合按照第一个文件编号 升序 排列。

示例 1:

输入:target = 12
输出:[[3, 4, 5]]
解释:在上述示例中,存在一个连续正整数序列的和为 12,为 [3, 4, 5]。

示例 2:

输入:target = 18
输出:[[3,4,5,6],[5,6,7]]
解释:在上述示例中,存在两个连续正整数序列的和分别为 18,分别为 [3, 4, 5, 6] 和 [5, 6, 7]。

解析:
这道题本质是寻找所有连续的正整数序列,这些序列的和等于给定的 target,序列长度至少为2
我们就可以设置一个滑动窗口来做,通过调整窗口左右边界,寻找和等于 target 的窗口

具体代码:

/** * 找出所有和为target的连续正整数序列 * @param {number} target - 目标和 * @return {number[][]} - 所有符合条件的连续正整数序列数组 */varfileCombination=function(target){// 初始状态:从数字1开始letsum=1// 当前窗口内数字的和,初始为[1]的和letlist=[1]// 滑动窗口,存储当前连续的整数序列letres=[]// 存储所有符合条件的序列// 遍历可能的连续序列// 从2开始,到Math.ceil(target/2)结束// 原因:最小的两个连续整数n和n+1,如果n > target/2,则n+(n+1)>targetfor(leti=2;i<=Math.ceil(target/2);i++){// 窗口向右扩展:将当前数字i加入窗口sum+=i// 更新窗口和list.push(i)// 将i加入窗口末尾// 如果窗口和超过target,需要从左侧收缩窗口// 不断移除窗口中最小的数字,直到窗口和≤targetwhile(sum>target){sum-=list.shift()// 移除窗口最左侧的数字,并更新和}// 检查当前窗口和是否正好等于targetif(sum===target){// 找到符合条件的序列,深拷贝当前窗口并保存res.push([...list])// 使用扩展运算符创建数组副本}}// 返回所有找到的连续序列returnres}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/30 14:01:33

微软开源Agent开发教程(37k start )

读者收益&#xff1a;这个全面的学习路径将引导你探索AI智能体的精彩世界&#xff0c;从基础概念到生产级实现。无论你是希望为应用程序增加智能体功能的开发者&#xff0c;还是想了解这项变革性技术的科技爱好者&#xff0c;本课程为你提供了入门所需的一切。 概述(什么是智能…

作者头像 李华
网站建设 2026/1/6 6:56:01

别再被 RAG 绕晕了!3 分钟搞懂大模型“检索-增强-生成”逻辑!

RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是一种结合了信息检索技术与语言生成模型的人工智能技术。 该技术通过从外部知识库中检索相关信息&#xff0c;并将其作为提示&#xff08;Prompt&#xff09;输入给大型语言模型&#xf…

作者头像 李华
网站建设 2026/1/9 0:08:12

学网络安全 = 当黑客?揭秘技术本质、正统领域与白帽职业路径

提及网络安全&#xff0c;很多人都是既熟悉又陌生&#xff0c;所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 一、什么是网络安全? 网络安全是指保护网络系统、硬件、软件以及其中的数据免受…

作者头像 李华