Kimi LeetCode 3791. 给定范围内平衡整数的数目 Python3实现
📅 2026/7/31 2:02:11
👁️ 次浏览
以下是 LeetCode 3791. 给定范围内平衡整数的数目 的 Python3 实现。题目理解一个整数是平衡的当且仅当1. 至少包含两位数字2. 奇数位数字之和等于偶数位数字之和最左边数字位置为1约束1 low high 10^15需要使用数位 DP。Python3 实现pythonfrom functools import lru_cacheclass Solution:def countBalanced(self, low: int, high: int) - int:# 如果 high 11范围内没有至少两位的数直接返回0if high 11:return 0# 计算 [0, x] 中平衡整数的个数def calc(x: int) - int:s str(x)n len(s)lru_cache(maxsizeNone)def dfs(pos: int, diff: int, is_limit: bool, is_num: bool) - int:# pos: 当前处理到的位置# diff: 奇数位和 - 偶数位和# is_limit: 是否受上界限制# is_num: 是否已经填了非前导零的数字if pos n:# 必须至少两位且差值为0return 1 if is_num and diff 0 else 0res 0up int(s[pos]) if is_limit else 9for d in range(up 1):if not is_num and d 0:# 前导零继续跳过res dfs(pos 1, diff, False, False)else:# 计算当前位的贡献# pos 从0开始对应第1位奇数位if is_num:# 已经有数字了当前位根据 pos 的奇偶性# pos 是字符串索引已经填了前导零后的实际位置需要重新算# 这里用 digit_count 记录已经填了多少位pass # 下面用另一种更清晰的方式return res# 上面的写法不太对换一种更清晰的pass# 重新写不用 is_num直接处理def count(x: int) - int:s str(x)n len(s)lru_cache(maxsizeNone)def dfs(pos: int, diff: int, is_limit: bool, started: bool, digit_count: int) - int:if pos n:# 必须已经开始至少一位且至少两位且差值为0return 1 if started and digit_count 2 and diff 0 else 0res 0up int(s[pos]) if is_limit else 9for d in range(up 1):if not started and d 0:# 还是前导零res dfs(pos 1, diff, False, False, 0)else:# 当前是第 digit_count1 位从1开始计数new_count digit_count 1# 奇数位加偶数位减new_diff diff d if new_count % 2 1 else diff - dres dfs(pos 1, new_diff, is_limit and d up, True, new_count)return resreturn dfs(0, 0, True, False, 0)return count(high) - count(low - 1)更简洁的版本不带前导零处理因为题目要求至少两位pythonfrom functools import lru_cacheclass Solution:def countBalanced(self, low: int, high: int) - int:def count(x: int) - int:if x 11:return 0s str(x)n len(s)lru_cache(maxsizeNone)def dfs(pos: int, diff: int, is_limit: bool) - int:# pos: 当前处理到的位置 (0-indexed)# diff: 奇数位和 - 偶数位和# is_limit: 是否受上界限制if pos n:return 1 if diff 0 else 0res 0up int(s[pos]) if is_limit else 9for d in range(up 1):# pos 从0开始对应第1位奇数位# 奇数位pos%20即第1,3,5...位加 d# 偶数位pos%21即第2,4,6...位减 dnew_diff diff d if pos % 2 0 else diff - dres dfs(pos 1, new_diff, is_limit and d up)return resreturn dfs(0, 0, True)return count(high) - count(low - 1)复杂度分析- 时间复杂度O(log M × D²)其中 M highD 10- 空间复杂度O(log M × D)主要是 lru_cache 的缓存空间关键要点1. 数位奇偶性pos % 2 0 对应第1、3、5...位奇数位从1开始计数加 d否则减 d2. 差值 diffdiff 奇数位和 - 偶数位和最终需要 diff 03. 范围计算count(high) - count(low - 1) 得到 [low, high] 范围内的平衡整数个数4. 边界处理x 11 时返回0因为单个数字不可能平衡
1. 项目概述:为什么我们需要重新审视2FAuth的安全性?最近在部署和审计内部的双因素认证系统时,我花了大量时间深入研究一个开源项目:2FAuth。它不仅仅是一个简单的TOTP令牌生成器,其设计背后蕴含了许多对安全性和合规性…
📅 2026/7/31 2:02:11
1. 项目概述:当国产平台遇上国产Flash最近在基于复旦微电子的FMQL系列平台(可以理解为国产化的ZYNQ)进行Linux系统开发时,遇到了一个挺典型但又有点棘手的问题:系统引导程序U-Boot和Linux内核无法正确识别板载的国产SP…
📅 2026/7/31 2:02:11
1. 项目概述:为什么我们需要一个独立的C编译环境“实战包”?如果你在Windows上折腾过任何稍微“硬核”一点的软件,比如从源码编译Python包、运行某些游戏模组、或者安装一些依赖C库的专业工具,那你大概率见过这个令人头疼的弹窗&a…
📅 2026/7/31 2:02:11
全网视频资源一键下载:3分钟掌握res-downloader免费工具完整指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader
…
📅 2026/7/31 3:03:04
在实际 AI 大模型应用开发中,Token 是连接用户输入与模型计算的核心计量单位,其消耗直接关系到 API 调用成本和服务稳定性。最近,GLM 5.2 模型发布后,其 Token 容量或消耗量出现了显著增长,这引发了开发者对成本控制、…
📅 2026/7/31 3:03:04
Zotero PDF Translate终极指南:7天从文献小白到多语言研究高手 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh_…
📅 2026/7/31 3:03:04
Greasy Fork完整指南:5分钟掌握浏览器用户脚本的强大工具箱 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork
Greasy Fork是一个开源的用户脚本在线仓库平台,让普通用…
📅 2026/7/31 3:03:04
1. 遥感数字图像处理入门指南遥感图像处理是地理信息科学领域的核心技能之一。我第一次接触遥感图像是在大学实习期间,当时需要从卫星影像中提取城市绿地信息。面对那些看似杂乱无章的像素点,我完全不知从何下手。经过多年实践,我发现掌握几个…
📅 2026/7/31 3:03:04
做岩土设计这些年,见过太多同行被各种软件教程忽悠得团团转。今天不聊虚的,就聊聊大家最关心的Geo5实操和那些坑爹的行业潜规则。我在geo5吧潜水很久,发现不少新手还在为一些基础问题纠结,甚至因为不懂行被咨询公司坑了钱。先说个真事。去年有个刚入行的小伙子,拿着某机构…
📅 2026/7/31 3:02:38
数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…
📅 2026/7/31 0:00:23
BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…
📅 2026/7/31 0:00:23
当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…
📅 2026/7/31 0:00:23
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/31 1:18:08
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/31 1:18:08
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/31 1:18:08
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/30 7:16:27
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/30 17:17:14
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/30 5:16:22