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

Kimi K2.6 思考 LeetCode 3260. 找出最大的 N 位 K 回文数 Go实现

以下是 LeetCode 3260 找出最大的 N 位 K 回文数 的 Go 实现,基于 k 的分类讨论规律解法,时间复杂度 O(n),空间复杂度 O(n)(返回结果字符串)。

```go
package main

import "strings"

func largestPalindrome(n int, k int) string {
switch k {
case 1, 3, 9:
// 全9即可被 1/3/9 整除
return strings.Repeat("9", n)

case 2:
// 末位需为偶数,取最大偶数8;首位也需为8(回文)
if n <= 2 {
return strings.Repeat("8", n)
}
return "8" + strings.Repeat("9", n-2) + "8"

case 4:
// 末两位需被4整除,88是最大满足条件的两位
if n <= 4 {
return strings.Repeat("8", n)
}
return "88" + strings.Repeat("9", n-4) + "88"

case 5:
// 末位需为0或5,取5(不能前导零)
if n <= 2 {
return strings.Repeat("5", n)
}
return "5" + strings.Repeat("9", n-2) + "5"

case 6:
// 需同时满足被2和被3整除
if n <= 2 {
return strings.Repeat("6", n)
}
if n%2 == 1 {
// 奇数位: 8...8...8,中间8保证数字和为3的倍数
l := n/2 - 1
return "8" + strings.Repeat("9", l) + "8" + strings.Repeat("9", l) + "8"
}
// 偶数位: 中间两位取77,使数字和为3的倍数
l := n/2 - 2
return "8" + strings.Repeat("9", l) + "77" + strings.Repeat("9", l) + "8"

case 7:
// k=7 的规律较复杂,按 n%12 分类讨论
if n <= 2 {
return strings.Repeat("7", n)
}
mod := n % 12
switch mod {
case 0, 6:
return strings.Repeat("9", n)
case 3:
res := make([]byte, n)
for i := range res {
res[i] = '9'
}
res[n/2] = '5'
return string(res)
case 9:
res := make([]byte, n)
for i := range res {
res[i] = '9'
}
res[n/2] = '6'
return string(res)
case 1, 2, 4, 5:
res := make([]byte, n)
for i := range res {
res[i] = '7'
}
for i, j := 0, n-1; i+1 < j; i, j = i+1, j-1 {
res[i] = '9'
res[j] = '9'
}
return string(res)
case 7, 8, 10, 11:
res := make([]byte, n)
for i := range res {
res[i] = '4'
}
for i, j := 0, n-1; i+1 < j; i, j = i+1, j-1 {
res[i] = '9'
res[j] = '9'
}
return string(res)
}

case 8:
// 末三位需被8整除,888是最大满足条件的三位
if n <= 6 {
return strings.Repeat("8", n)
}
return "888" + strings.Repeat("9", n-6) + "888"
}

return ""
}
```

核心思路说明

由于 `k ≤ 9`,可以对每个 k 值利用整除规则和回文约束分别找规律:

k 关键规则 构造方式
1, 3, 9 数字和是3/9的倍数 全 `9`
2 末位偶数 首尾 `8`,中间全 `9`
4 末两位被4整除 前两位和末两位 `88`,中间全 `9`
5 末位0或5 首尾 `5`,中间全 `9`
6 被2且被3整除 奇数:`8...8...8`;偶数:中间 `77`
7 无简单规则 按 `n % 12` 分类,共6种子情况
8 末三位被8整除 前三位和末三位 `888`,中间全 `9`

复杂度分析

- 时间复杂度: O(n) — 主要是 `strings.Repeat` 和 `make([]byte, n)` 的字符串构造
- 空间复杂度: O(n) — 返回结果字符串所需空间

这种方法比通用的 DP 解法(O(nk) 时间)更简洁高效,充分利用了 `k ≤ 9` 的题目约束。

http://www.rkmt.cn/news/1531784.html

相关文章:

  • 2026乐山苏稽跷脚牛肉探店指南:哪家值得一试?老字号与新锐品牌真实体验分享 - 优质品牌商家
  • 如何快速实现网盘下载加速:免费高效的终极解决方案
  • Gemini 3.5 Flash vs GPT-4o mini:谁才是最强性价比大模型?
  • 如何用VirtualRouter将Windows电脑变成免费WiFi热点?
  • 5分钟掌握Blender UV Squares:告别UV编辑的混乱与低效
  • MPC866 MMU内存管理:TLB、页表与保护模式详解
  • PXD10 DMA寄存器配置与仲裁机制深度解析及实战优化
  • Label Studio:企业级多模态数据标注平台的架构革命与实施路径
  • 嵌入式DMA链式描述符机制详解:从原理到NXP MSC8251实战
  • 注册账户_20260607005159A002_20260615234732A002 - 心梦EGO
  • Cesium地形加载性能优化实战:从WorldTerrain到自定义Provider的避坑指南
  • 2026市场最好的会议室全彩屏定制厂家排行 - 品牌排行榜
  • 5分钟掌握终极Windows系统管理:Chris Titus Tech WinUtil一键优化与批量安装完全指南
  • AI 智能合约审计:从人工审查到自动化检测,Web3 安全的智能化防线
  • 遗传算法工程实践:参数调优、早熟防治与工业级落地指南
  • 暗黑破坏神2存档编辑器终极指南:让单机游戏体验焕然一新
  • MPC860 PowerQUICC系列选型与硬件差异深度解析
  • 2026年6月一体式电磁流量计品牌好评榜:技术迭代与市场验证下的国产品牌突围 - 水质仪表品牌排行榜
  • 系统架构设计师-计算机网络基础体系全梳理
  • 嵌入式视频解码实战:NXP VPU帧跳过与I帧搜索机制详解
  • 遗传算法工程实操指南:从种群初始化到早熟干预
  • Solidity 安全最佳实践:从漏洞模式到防御编码,智能合约的安全工程方法论
  • MSC8251 DPU寄存器深度解析:硬件性能监控与调试实战指南
  • 无人自助终端语音交互踩坑记:用 A-59U 解决杂音、回声、啸叫三大顽疾
  • 【双MCU项目复盘与优化】04 - 使用ESP-SR 进行语音识别
  • MSC8251多核DSP引导程序与系统配置实战指南
  • 2026年全国铝板带材核心供应商评测:五大源头工厂实力与采购适配指南 - 互联网科技品牌测评
  • 别再到处找破解版了!手把手教你用Docker在Kali Linux上部署AWVS 14(附官方试用版获取指南)
  • 小红书视频怎么无水印保存?2026司马去水印免费下载小红书视频到手机相册教程 - 科技大爆炸
  • 2026论文隐藏级降AIGC软件大曝光:一键改写直达人工原创!