笔试强训 Day 22:添加字符、数组转换、装箱问题
添加字符字符串思路借鉴滑动窗口思路把 A 看做是一个参照在 B 中枚举参照长度相同的窗口然后位置一一对应对不同的位置进行计数A abb B bba 可能会有对齐匹配的想法但是 B 的长度是不能变的因此无需对齐只看对应位置字符是否相等即可 本次 cnt 2而不是 1找到 cnt 最小的窗口代码实现importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);char[]strAin.next().toCharArray();char[]strBin.next().toCharArray();intmstrA.length,nstrB.length;intretm;for(inti0;in-m;i){intcntm;for(intj0;jm;j){if(strA[j]strB[ij]){cnt--;}}retMath.min(cnt,ret);}System.out.println(ret);}}数组变换思路贪心当数组中所有的数乘以 2最终所有元素相同那么可以发过来将所有的数都除以 2直到所有的数为奇数如果符合条件此时数组中所有的奇数一定相同代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);intnin.nextInt();Long[]numsnewLong[n];for(inti0;in;i){nums[i]in.nextLong();while(nums[i]%20){nums[i]/2;}}longprenums[0];for(inti1;in;i){if(pre!nums[i]){System.out.print(NO);return;}}System.out.println(YES);}}装箱问题思路01 背包问题错误代码importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);intvin.nextInt();intnin.nextInt();int[]numsnewint[n1];for(inti1;in;i)nums[i]in.nextInt();int[]dpnewint[20001];dp[0]v;intret0;for(inti1;in;i){for(intj1;ji;j){if(dp[j]nums[i]v)dp[i]Math.max(dp[j]nums[i],dp[i]);retMath.max(ret,dp[i]);}}System.out.println(v-ret);}}出发点选 i 物品时达到的体积最大值思路方向是对的但代码中dp的定义和状态转移存在几个关键问题导致无法得到正确结果。错误代码主要问题1.dp数组的定义和索引混乱定义了dp[0] v但dp[i]到底表示什么看起来你想让dp[i]表示「选择第 i 个物品时能获得的最大体积」但dp[0] v这个初始化不合理dp[0]应该表示不选任何物品时的体积为 0状态转移时用dp[j]作为容量来比较但dp[j]是体积值而不是容量值2. 双重循环的逻辑错误for(inti1;in;i){for(intj1;ji;j){if(dp[j]nums[i]v)dp[i]Math.max(dp[j]nums[i],dp[i]);retMath.max(ret,dp[i]);}}内层循环只遍历j i相当于只考虑了物品编号小于 i 的组合但物品的最优组合并不一定按编号顺序出现dp[j]已经被赋予了不同的含义最大体积但又用它来判断dp[j] nums[i] v逻辑混乱3. 没有处理「不选任何物品」的情况如果所有物品体积都大于箱子容量正确答案应该是v剩余空间不变但你的代码ret初始为 0最终会输出v这里碰巧是对的。但如果存在可选物品你的逻辑就可能出错。正确解法01背包这道题是经典的01背包问题——每个物品只能选一次目标是让装入的物品总体积尽可能大但不能超过箱子容量 V最后用V - 最大体积即为最小剩余空间。核心思路dp[j]表示容量为j的箱子能装下的最大物品体积。对每个物品从大到小遍历容量状态转移方程为dp[j] max(dp[j], dp[j - nums[i]] nums[i])正确代码importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);intvin.nextInt();// 箱子容量intnin.nextInt();// 物品数量int[]numsnewint[n];for(inti0;in;i){nums[i]in.nextInt();}// dp[j] 表示容量为 j 的箱子能装下的最大体积int[]dpnewint[v1];for(inti0;in;i){// 从大到小遍历保证每个物品只用一次for(intjv;jnums[i];j--){dp[j]Math.max(dp[j],dp[j-nums[i]]nums[i]);}}// 最大能装下的体积是 dp[v]剩余空间 V - dp[v]System.out.println(v-dp[v]);}}以示例为例V24物品为 8、3、12、7、9、7最终dp[24] 24输出0。为什么你的代码只通过 40%你的算法本质上是一个错误的子集和求解它只考虑了物品按编号顺序的局部组合而不是全局最优。当测试用例中物品顺序打乱时比如最优解需要跳着选物品你的代码就会漏掉正确组合导致答案偏大剩余空间偏大。总结对比项你的代码正确01背包dp含义混乱dp[i]含义不清晰dp[j]容量 j 能装的最大体积遍历顺序正序物品可能被重复使用倒序保证每个物品只用一次状态转移只考虑编号小于 i 的物品考虑所有物品的组合结果只取局部最优全局最优把代码改成标准的01背包模板即可通过所有测试用例。

相关新闻

STM32串口高效接收不定长数据:空闲中断与DMA循环模式实战详解

STM32串口高效接收不定长数据:空闲中断与DMA循环模式实战详解

1. 项目概述:为什么需要“空闲中断DMA”接收不定长数据? 在嵌入式开发,尤其是基于STM32这类MCU的项目里,串口通信是最基础、最频繁使用的功能之一。无论是调试信息输出、与上位机(如PC)交互,还是…

2026/7/31 13:55:00阅读更多 →
AI睡眠语音分析:解码梦话预测神经系统疾病

AI睡眠语音分析:解码梦话预测神经系统疾病

1. 项目概述:当AI学会"听梦话"深夜的监护病房里,一位阿尔茨海默症患者突然开始说梦话:"红色的绳子...缠住了我的脚..."。三个月后,这位患者被确诊患有帕金森综合征。这不是巧合——最新研究表明,人…

2026/7/31 13:55:00阅读更多 →
百考通得力助手:助力每一份研究从良好开端走向卓越成果

百考通得力助手:助力每一份研究从良好开端走向卓越成果

在信息技术高速发展的今天,无论是高校学生、编程爱好者还是行业从业者,都面临着项目实践资源分散、学习路径不清晰、开发效率低下的困境。百考通(https://www.baikaotongai.com) 应运而生,以一站式项目资源聚合平台的姿…

2026/7/31 13:55:00阅读更多 →
Python手写RSA加密算法:从数学原理到密钥生成实战

Python手写RSA加密算法:从数学原理到密钥生成实战

1. 项目概述:为什么我们要亲手实现RSA? 如果你看过《模仿游戏》或者《谍影重重》这类电影,一定对“加密”这个词不陌生。电影里,特工们用一串串看似毫无规律的字符传递绝密信息,敌方截获后却束手无策,那种紧…

2026/7/31 15:08:15阅读更多 →
PyTorch深度学习实战:从零构建神经网络模型的五个核心步骤

PyTorch深度学习实战:从零构建神经网络模型的五个核心步骤

在人工智能和深度学习领域,框架的选择往往决定了开发的效率。PyTorch凭借其动态计算图和极具Python风格的接口,已经成为学术界和工业界的首选工具之一。很多初学者觉得深度学习框架门槛很高,但实际上,只要掌握正确的方法&#xff…

2026/7/31 15:08:15阅读更多 →
【计算机毕业设计】基于Spring Boot的在线教学平台的设计与实现

【计算机毕业设计】基于Spring Boot的在线教学平台的设计与实现

1.系统介绍随着信息技术在教育领域的深度渗透,传统线下教学模式已难以满足数字化学习的需求,在线教学平台成为优化教学流程、提升教学效率的重要载体。本研究针对教学管理中信息交互不及时、流程管控不规范等问题,设计并实现一套多角色协同的…

2026/7/31 15:08:15阅读更多 →
Biotin-AIB:生物素标记2-氨基异丁酸,氨基酸转运与营养感知化学生物学探针

Biotin-AIB:生物素标记2-氨基异丁酸,氨基酸转运与营养感知化学生物学探针

中文名称:生物素标记2-氨基异丁酸、生物素-2-氨基异丁酸英文名称:Biotin-2-Aminoisobutyric acid(Biotin-AIB)一、分子结构与特性核心组分:2-氨基异丁酸(AIB,分子式 C₄H₉NO₂,分子…

2026/7/31 15:08:15阅读更多 →
客服外包和找客服重点区别在哪?新手卖家建议先看完汉聪这个案例再说

客服外包和找客服重点区别在哪?新手卖家建议先看完汉聪这个案例再说

先泼一盆冷水——客服外包这行,口碑两极分化极其严重。有人靠它省下几十万人工成本,有人被坑得血本无归还投诉无门。那汉聪到底是什么水平?从行业逻辑和可查信息出发,帮你理清几个关键问题。一、先把概念搞清楚,客服外…

2026/7/31 15:08:15阅读更多 →
C++实现跨平台云备份工具:架构设计与工程实践

C++实现跨平台云备份工具:架构设计与工程实践

1. 项目概述:一个跨平台的C云备份工具最近在整理几个跨平台的项目,数据分散在Ubuntu服务器和Windows开发机上,手动备份既繁琐又容易遗漏。市面上成熟的云备份方案不少,但要么是闭源的黑盒,要么年费不菲,要么…

2026/7/31 15:06:15阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/31 0:49:33阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/31 5:08:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →