news 2026/9/3 4:08:12

【十叉树的先序遍历】字典序的第K小数字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【十叉树的先序遍历】字典序的第K小数字

求解代码

publicintfindKthNumber(intn,intk){intcur=1;// 从字典序第一个数字 1 开始k--;// 转换为 0 索引while(k>0){// 计算以cur为根的子树,包含的有效节点数量intsteps=getSteps(cur,n);if(steps<=k){// 目标不在当前子树,跳过整棵子树,更新k和当前节点k-=steps;cur++;}else{// 目标在子树中,进入子节点,k减1(跳过当前节点)cur*=10;k--;}}returncur;}// 计算以cur为根节点的子树中,<=n的节点总数privateintgetSteps(intcur,longn){intsteps=0;longfirst=cur;// 当前层起始节点longlast=cur;// 当前层结束节点while(first<=n){// 累加当前层的节点数,防止last超出nsteps+=Math.min(last,n)-first+1;// 进入下一层first*=10;last=last*10+9;}returnsteps;}

小贴士

  • k--是为了将1-based的输入转换为0-based计数
  • first/last必须用long类型,避免int乘法溢出;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:26:14

2 天,用函数计算 AgentRun 爆改一副赛博朋克眼镜

作者&#xff1a;简志 背景 一年前&#xff0c;我购入了 Meta Ray-ban 眼镜&#xff0c;Meta 对于眼镜本体的开发及 App 更新很快&#xff0c;但由于没有中文支持和开放的 SDK 导致对国内用户非常不友好。2025 年 11 月&#xff0c;Meta 终于放出了 Device Access Toolkit 让…

作者头像 李华
网站建设 2026/9/2 22:28:28

2026 年,鸿蒙是普通开发者最后一次上车机会?

从一个真实 App「学习小栈」&#xff0c;看懂 HarmonyOS 的红利期如果你是 Android / 前端 / 独立开发者&#xff0c;2026 年还在犹豫要不要学 HarmonyOS——那你真正该担心的&#xff0c;不是“学不会”&#xff0c;而是“没机会”。因为这一次&#xff0c;窗口期真的不长了。…

作者头像 李华
网站建设 2026/9/2 22:27:00

Go 微服务分布式事务 TCC 模式实战全指南

Go 微服务分布式事务 TCC 模式实战全指南 适用场景:高并发核心资源(库存 / 资金 / 配额)一致性控制 在微服务架构下,跨服务的数据一致性始终是一个绕不开的问题。传统依赖数据库事务的方式,在分布式环境中要么不可行,要么性能代价极高。 TCC(Try-Confirm-Cancel)模式,…

作者头像 李华
网站建设 2026/9/3 0:02:00

基于CODESYS平台的S7客户端通讯源码解析与西门子PLC的互操作性研究

基于CODESYS平台的S7客户端与西门子PLC通讯源码工业现场的数据通讯就像车间里的八卦&#xff0c;设备之间总得互相传点悄悄话。今天咱们聊聊CODESYS平台下用C语言搞S7协议通讯的黑科技——别看西门子PLC平时一副高冷样&#xff0c;其实撩拨起来也没那么难。先甩段硬核代码镇楼&…

作者头像 李华