尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
笔试强训 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背包模板即可通过所有测试用例。
RELATED

相关推荐

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

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

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

📅 2026/11/16 7:35:39
AI睡眠语音分析:解码梦话预测神经系统疾病

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

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

📅 2026/11/16 7:35:39
百考通得力助手:助力每一份研究从良好开端走向卓越成果

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

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

📅 2026/10/7 23:19:28
MORE NEWS

更多资讯

📰

社会参考的低压电工证上岗必备怎么考才不白交钱

社会参考的低压电工证上岗必备怎么考才不白交钱 怕考不过白交培训费?社会参考的低压电工证是电工行业上岗必备的门槛,很多人因为不了解流程、备考方法或者证书有效期的问题,白白浪费了时间和金钱。作为从事多年特种作业证办理的业内人士,我见过太多人因为…

📰

通州区低压电工证在哪怎么报名,工地太忙根本没时间复习考试

通州区低压电工证在哪怎么报名,工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你是不是也经常因为工作安排紧凑,连报名低压电工证的时间都挤不出来?别急,通州区低压电工证在哪怎么报名,咱们今天就从头聊到尾,帮你解决实际问题。…

📰

郑州报考避坑指南:实操考试心里没底怕挂科?天网监控系统查电工证全攻略

郑州报考避坑指南:实操考试心里没底怕挂科?天网监控系统查电工证全攻略 实操考试心里没底怕挂科,尤其是刚毕业的济源工程类学生,面对电工证考试,既想快速上手又怕因为经验不足被刷掉,这种焦虑感真的太真实了。如果你正在备考低压电工证,或者正准备在郑…

📰

濮阳电工证在哪里办理电子证书能异地转吗

濮阳电工证在哪里办理电子证书能异地转吗 之前考的证在外省能不能转过来?这是很多持证人最关心的问题,特别是像你这样已经在外省考了电工证,但想回濮阳继续工作的朋友,这个问题直接关系到你的职业发展和合法性。好消息是, 电子证书…

📰

物业电工证外皮怎么看 2026河南最新政策告诉你怎么报

物业电工证外皮怎么看 2026河南最新政策告诉你怎么报 你学历不高怕报不上名?别急,2026河南最新政策已经出台,明确指出: 物业电工证外皮怎么看…

📰

3个真实经历告诉你,玉林电工证查询别再走弯路,工地太忙根本没时间复习考试

3个真实经历告诉你,玉林电工证查询别再走弯路,工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,我就是那个被现实逼着考证的人。去年在玉林某工地做电工,眼看就要到期复审,结果连低压电工证都快忘得一干二净。那天晚上,我在特种作业操作证查询…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬