恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

笔试强训 Day 36:提取不重复的整数、哈夫曼编码、abb

  • 首页
  • 资讯中心
  • /
  • 笔试强训 Day 36:提取不重复的整数、哈夫曼编码、abb

相关资讯

从入门到精通:react-typeahead的自定义选项与样式完全攻略 2026/8/7 22:29:30
揭秘自动驾驶制动系统:automated-driving-control校准方案 2026/8/7 22:29:30
DCNv2高级技巧:自定义偏移量(Offset)与掩码(Mask)实现精准特征对齐 2026/8/7 22:29:30

最新资讯

XCOM2游戏模组启动器:如何轻松管理你的战术游戏体验
向量数据库核心技术解析与工业实践指南
Java程序员收藏:拥抱AI,从入门大模型开始,抢占高薪新风口!
Python开发环境搭建指南:从零配置PyCharm与Python解释器
XHS-Downloader:小红书内容下载的三大创新解决方案
综合评价方法全解析:从AHP、熵权法到TOPSIS的实战应用与选型指南

今日推荐

CAD图库管理:从文件归档到设计资产管理的效率革命
5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

笔试强训 Day 36:提取不重复的整数、哈夫曼编码、abb

发布时间:2026/8/7 22:34:30
笔试强训 Day 36:提取不重复的整数、哈夫曼编码、abb Day 36提取不重复的整数解题思路模拟代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);int[]hashnewint[10];char[]cin.next().toCharArray();intnc.length;StringBuildersbnewStringBuilder();for(intin-1;i0;i--){if(hash[c[i]-0]1)continue;hash[c[i]-0];sb.append(c[i]);}System.out.println(sb.toString());}}哈夫曼编码解题思路使用哈夫曼编码时出现次数少的字符应放在树的更深处。每次选择当前出现次数最少的两个节点合并它们的所有字符编码长度都会增加1因此本次对总长度的贡献为两者出现次数之和。用小根堆维护所有节点权重将所有字符出现次数放入小根堆。每次取出最小的两个数x、y。合并为新节点x y将其加入答案。将x y放回堆中。重复直到堆中只剩一个节点。最终累加值就是最短ß编码长度。时间复杂度O(n log n)空间复杂度O(n)代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);intnin.nextInt();// 小根堆每次 poll() 取出最小值PriorityQueueLongpqnewPriorityQueue();for(inti0;in;i){pq.offer(in.nextLong());}longans0;// 不断合并当前最小的两个节点// 只有一种字符时不需要区分它和其他字符可以用长度为 0 的空编码因此编码总长度为 0。while(pq.size()1){longxpq.poll();// 最小longypq.poll();// 次小longsumxy;anssum;// 新的父节点放回去继续参与下一轮合并pq.offer(sum);}System.out.println(ans);}}abb解题思路线性 dp难在统计二元组数量的方式代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);intnin.nextInt();char[]sin.next().toCharArray();// 记录前面的每种字符的个数long[]cntnewlong[26];// 记录前面出现的不同二元组的个数, 每个元素表示以其为末尾, 二元组的数量long[]pairnewlong[26];// 记录前面出现的字符个数longtotal0;// 记录 abb 出现个数longret0;for(inti0;in;i){intcs[i]-a;// 以 c 为末尾的 xcc 数量retpair[c];// 更新二元组, 表示以当前字符为末尾的二元组数量// err: 累加, 以当前 c 为结尾, 前面与 c 不同, 新组成的二元组数量pair[c]total-cnt[c];total;cnt[c];}System.out.println(ret);}}

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号