当前位置: 首页 > news >正文

力扣第180题文件组合,来看看滑动窗口的巧妙思想!

题目链接: https://leetcode.cn/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/

解题思路分析

该问题要求找出所有连续正整数序列的和等于给定目标值target的序列。采用滑动窗口(双指针)方法可以高效解决,通过动态调整窗口的左右边界来寻找符合条件的序列。

关键步骤

初始化变量定义三个变量:左边界i(初始为1)、右边界j(初始为2)、当前窗口和s(初始为3)。使用ArrayList存储符合条件的序列。

滑动窗口调整

  • s == target时,将当前窗口内的连续整数存入数组并加入结果列表,随后移动左边界并更新s
  • s > target时,移动左边界缩小窗口并更新s
  • s < target时,移动右边界扩大窗口并更新s

终止条件由于题目要求至少两个数,循环在i >= j时终止。

复杂度分析

  • 时间复杂度:O(target),最坏情况下左右指针各遍历一次。
  • 空间复杂度:O(1),不考虑输出结果的空间占用。

代码实现

import java.util.ArrayList; import java.util.Arrays; public class Solution { public int[][] fileCombination(int target) { int i = 1; int j = 2; int s = 3; ArrayList<int[]> list = new ArrayList<>(); while (i < j) { if (s == target) { int[] arr = new int[j - i + 1]; for (int k = i; k <= j; k++) { arr[k - i] = k; } list.add(arr); s -= i; i++; } else if (s > target) { s -= i; i++; } else { j++; s += j; } } return list.toArray(new int[0][]); } }

示例说明

输入target = 9时:

  • 输出[[2, 3, 4], [4, 5]],对应2+3+4=94+5=9

注意事项

  • 右边界j每次移动时需累加到s
  • 左边界i移动时需从s中减去。
  • 结果转换为二维数组时使用list.toArray(new int[0][])保证类型安全。
  • 题目链接: https://leetcode.cn/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/
http://www.jsqmd.com/news/709986/

相关文章:

  • 2026主管护师考试模拟卷大测评,甄选带详细解析的优质模拟试卷 - 医考机构品牌测评专家
  • 无敌烤肉大王的地盘索引
  • AI核心知识143—大语言模型之 奖励作弊(简洁且通俗易懂版)
  • 如何突破性解决QtScrcpy鼠标点击失效:3个实战技巧深度解析
  • 告别臃肿!G-Helper:华硕笔记本终极轻量级控制方案
  • 小爱音箱自定义固件终极指南:解锁开源智能语音助手
  • 运营商骨干网与海外线路全解析
  • day48-闲鱼开课
  • AI 英语写作 APP的开发
  • DataChef框架:基于强化学习的LLM数据配方自动生成
  • 20252815 2025-2026-2《网络攻防实践》第8次作业
  • VS Code MCP插件开发实战指南(源码级调试+双向通信机制解密)
  • 方言大语言模型实战:Darija Chatbot竞技场架构解析
  • VR校园安全学习机:让安全意识从“心”出发
  • 从2.8MB到300KB:Vue ECharts构建优化终极指南
  • 终极指南:MZmine3命令行登录的5个实用技巧解决HPC集群认证难题
  • 单北斗GNSS在变形监测中的应用与系统优化分析
  • C:结构体(struct)
  • MCP 工具调用静默超时:一次从触发条件到执行兜底的链路排查
  • C语言PLCopen适配开发:为什么92%的国产PLC厂商卡在Task Management Layer?深度拆解周期任务调度与中断协同机制
  • ESP32-Arduino开发框架的完整实现方案:从硬件抽象到物联网应用
  • GTAM:向量检索系统评估新方法与实践
  • VS Code MCP生态建设避坑指南(2024最新版):92%开发者踩过的7类协议兼容性陷阱全复盘
  • 突破性PDF文本提取革命:pdftotext让文档处理变得前所未有的简单
  • 番茄小说下载器:开源免费的一站式小说离线阅读解决方案
  • 终极跨平台鼠标自动化神器:MouseClick完整使用指南
  • BetaFlight硬件配置文件DIY:手把手教你用set命令为定制飞控配置传感器
  • Transformer架构与大型语言模型的核心技术解析
  • AI编程革命:Codex如何终结重复造轮子
  • 剑指巅峰,磨砺芳华:我的 CSDN 创作一周年深度总结