Kimi LeetCode LCP 47. 入场安检 Java实现

发布时间:2026/10/17 4:20:08

Kimi    LeetCode LCP 47. 入场安检 Java实现 以下是 LCP 47. 入场安检 的 Java 实现。题目分析- N 个安检室容量分别为 capacities[i]总和为 M。- 恰好 M1 位观众编号 0 M依次入场。- 每个安检室可选择两种类型之一- 先进先出队列最早进入的先离开- 后进先出栈最晚进入的先离开- 观众从 0 号安检室开始依次通过所有安检室。- 求有多少种设定安检室类型的方案使得编号 k 的观众第一个通过最后一个安检室。核心思路数学建模 → 01背包求方案数关键观察- 队列容量为 x 的队列第一个进入的人总是第一个出去的。它不会阻挡任何人。- 栈容量为 x 的栈当装满 x-1 人后再进入第 x 人时栈顶最后进入的人会被弹出。这意味着一个容量为 x 的栈实际上会延后 x-1 个人通过。为了让编号 k 的人第一个通过最后一个安检室需要恰好有 k 个人被延后。问题转化为 从 capacities 中选择若干安检室设为栈使得这些栈的 (容量 - 1) 之和恰好等于 k求方案数。这就是一个经典的 01背包求方案数 问题。Java 实现javaimport java.util.Arrays;class Solution {private static final int MOD 1_000_000_007;public int securityCheck(int[] capacities, int k) {// 01背包求方案数// f[j] 表示前 i 个安检室中选择若干栈其 (容量-1) 之和为 j 的方案数int[] f new int[k 1];Arrays.fill(f, 0);f[0] 1; // 什么都不选方案数为1for (int cap : capacities) {int w cap - 1; // 选栈则贡献 cap-1选队列则贡献 0不选// 倒序遍历01背包标准写法for (int j k; j w; j--) {f[j] (f[j] f[j - w]) % MOD;}}return f[k];}}复杂度分析- 时间复杂度O(N × K)其中 N capacities.lengthK k- 空间复杂度O(K)验证输入 输出 说明capacities [2,2,3], k 2 2 选容量2的栈(w1) 容量3的栈(w2)3≠2或选两个容量2的栈(w112) ✓或选容量3的栈(w2) ✓capacities [3,3], k 3 0 最大和为 224但无法凑出3capacities [4,3,2,2], k 6 2 两种方案下载完整代码[Solution_LCP47.java](sandbox:///mnt/agents/output/Solution_LCP47.java)
延伸阅读

更多相关文章

2026/10/17 1:37:27

Kimi LeetCode LCP 43. 十字路口的交通 Java实现

以下是 LCP 43. 十字路口的交通 的 Java 实现。题目分析- directions 长度为 4,按 东、南、西、北 顺序记录各方向车辆(从最靠近路口到最远离路口)。 - 每辆车通过路口恰好需要 1 秒。 - 每秒交警可以指挥多个方向最靠近路口的车同时出发&…

2026/10/14 21:09:27

基于SpringBoot的旅游出行指南系统毕业设计项目源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/17 4:19:50

QQ群名片批量采集的风险与合规替代方案,社群运营必读

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 4:19:50

OpenCV像素级逻辑运算:掩膜驱动的图像空间决策原理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 4:19:50

停车场车位识别:多模态工程落地的四大断层

1. 为什么“停车场车位识别”不是个简单的小功能,而是一道典型的多模态工程题“停车场车位识别(一)”这个标题看起来平平无奇,甚至有点像某门课程实验的作业编号。但我在某高校智能交通实验室带过三届本科生项目,也帮两…

2026/10/17 4:19:50

统一搜索与AI助手:构建团队知识索引的架构与落地实践

1. 为什么现代团队需要统一搜索和AI助手工作节奏越来越快的今天,"信息分散"成了团队协作最大的隐形杀手。文件散落在各个云盘、知识库、项目管理系统、IM聊天记录里,找一份合同要翻三个软件,查一个客户背景要开五个标签页&#xff…

2026/10/17 4:14:50

AI驱动的企业数字孪生:从仿真复现到决策优化

1. 为什么企业数字孪生必须叠加AI:传统仿真模型的三个死穴前两年我在一家制造企业做产线仿真项目,当时用传统数字孪生工具给车间搭了一个高精度三维模型,设备运动逻辑、节拍、缓存区全都对上了,模型跑起来跟现场监控画面几乎一帧不…

2026/10/16 5:33:43

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/16 4:03:48

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/15 13:42:16

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/17 0:04:32

PlanarSLAM:面向曼哈顿世界的点线面联合SLAM系统

简介:本资源是面向机器人视觉与SLAM研究者的C开源RGB-D SLAM系统实现,专为结构化室内场景(如办公室、走廊)设计,通过融合点、线、平面三类几何特征并引入“曼哈顿世界”假设,显著提升位姿跟踪鲁棒性与稠密地…

2026/10/17 0:04:32

TDH Workflow调度实战:从DAG依赖驱动到任务编排与故障排查

1. 从一个调度脚本说起:TDH Workflow到底在解决什么问题第一次接触TDH的Workflow,是在一个数据清洗项目里。当时团队每天要跑几十个ETL任务,任务之间有严格的先后依赖——A表清洗完才能跑B表的关联,B表跑完才能触发C表的聚合。最开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑