当前位置: 首页 > news >正文

千问 LeetCode 2081.K 镜像数字的和 TypeScript实现

这是一道结合了回文数构造和进制转换的题目。

🧠 核心思路

  1. 题目目标:
    找到最小的 n 个正整数,使得它们在十进制下是回文数,且在 k 进制下也是回文数。最后返回这些数的和。

  2. 解题策略:

    • 暴力枚举不可行:如果从 1 开始逐个判断,效率太低,因为回文数很稀疏。
    • 构造回文数:我们应该直接生成十进制下的回文数,从小到大。
    • 生成方法:
      • 通过枚举回文数的左半部分来生成完整的回文数。
      • 例如:左半部分是 12,可以生成奇数长度回文 121(中间加一位)或偶数长度回文 1221(直接拼接反转)。
    • 验证:对生成的每个十进制回文数,将其转换为 k 进制,检查是否也是回文。
  3. 算法流程:

    1. 从长度为 1 的数字开始(1-9),生成长度为 len 的所有回文数。
    2. 对于每个生成的回文数,检查其 k 进制形式是否为回文。
    3. 如果是,累加到结果中,计数器加一。
    4. 当找到 n 个满足条件的数时,返回总和。

💻 TypeScript 代码实现

function kMirror(k: number, n: number): number {
let sum = 0;
let count = 0;

// 从长度为 1 的回文数开始,逐步增加长度 for (let len = 1; count 0) { kBaseStr += (n % k).toString(); n = Math.floor(n / k); } // 检查是否是回文 return kBaseStr === kBaseStr.split('').reverse().join('');

}

⚡ 优化版本(更高效的回文生成)

function kMirror(k: number, n: number): number {
let sum = 0;
let count = 0;

// 从长度为1的回文数开始 for (let len = 1; count 0) { kBaseStr += (n % k).toString(); n = Math.floor(n / k); } return kBaseStr === kBaseStr.split('').reverse().join('');

}

📝 复杂度分析

  1. 时间复杂度:

    • 主要取决于需要检查多少个十进制回文数才能找到 n 个 k 进制回文数。
    • 生成回文数的效率远高于暴力遍历。
  2. 空间复杂度:O(log N),用于存储进制转换的字符串。

💡 关键点

  1. 主动生成回文数:比暴力遍历高效得多。
  2. 双重回文检查:先检查十进制回文,再检查 k 进制回文。
  3. 提前终止:找到 n 个就立即返回。
http://www.jsqmd.com/news/755772/

相关文章:

  • Phi-4-mini-flash-reasoning企业实操:技术文档结构化分析与摘要生成
  • 2026年性价比高的集成房屋定制,靠谱品牌大盘点 - mypinpai
  • D2DX:让经典《暗黑破坏神2》在现代PC上重获新生的终极方案
  • FilePizza终极突破:浏览器P2P文件传输的革命性重构
  • FPGA学习记录----二选一多路选择器
  • AI编码扩展实战指南:四大维度解析与VSCode神装清单
  • 【QuecOpen 实战-006】FreeRTOS 多任务编程实战
  • SIMD指令在Java中的应用探索
  • 从C++主流标准到Qt的版本支持:一位开发者的现实指南
  • find-skills-x:基于代码分析的开源技能发现与匹配工具
  • 基于MediaPipe的Android实时AI视觉应用开发实战
  • 2026年上海专门处理经济纠纷的本地律师排名 - mypinpai
  • Magpie:多模态大模型数据格式对齐工具实战指南
  • (118页PPT)新版VDAFMEA第五版培训(附下载方式)
  • Rust + PostgreSQL 极简技术栈应用开发
  • 【深度解析】Pi 极简终端 Coding Agent:为什么 4 个工具反而更适合 AI 编程?
  • MotionEdit:基于神经场技术的运动数据高效编辑方案
  • Phi-4-mini-reasoning基础教程:transformers pipeline参数与原生generate差异对比
  • vCenter 6.7安装后必做的几件事:从添加ESXi主机到创建数据中心完整流程
  • 深入理解C++智能指针
  • SciDER:科研自动化Python工具包的设计与应用
  • SeedPolicy:自进化扩散策略在机器人长时程任务中的应用
  • 新手福音:快马AI辅助生成零基础龙虾安装教程,带你轻松上手
  • 【极简监控】告别 OAP 与 ES!一个 Agent 搞定全链路与 UI,探秘单体 APM 界的“核潜艇” Glowroot
  • HCIP-DATACOM考试通关保姆级指南:从科目选择到题库实战,一次讲透
  • AI智能体记忆守护进程:构建持久化语义记忆系统的架构与实践
  • 如何快速提升游戏胜率:5个高效英雄联盟智能助手技巧
  • 【SSD202 开发实战 13】显示驱动开发与屏幕适配
  • 快速搭建集成hermes引擎的react native项目原型
  • CI/CD——使用Jenkins实现自动化部署与持续集成之jenkins的安装部署