Kimi    LeetCode 3621. 位计数深度为 K 的整数数目 I JavaScript实现
LeetCode 3621. 位计数深度为 K 的整数数目 I JavaScript 实现javascript/*** param {number} n* param {number} k* return {number}*/var popcountDepth function(n, k) {// k0只有 1 的深度为 0if (k 0) {return n 1 ? 1 : 0;}// 计算一个整数的 popcount二进制 1 的个数const popcount (x) {let cnt 0;while (x 0) {cnt (x 1);x 1;}return cnt;};// 预处理 1~60 的 popcount-depthconst depthMemo new Array(65).fill(-1);depthMemo[1] 0;const getDepth (x) {if (x 1) return 0;if (depthMemo[x] ! -1) return depthMemo[x];depthMemo[x] 1 getDepth(popcount(x));return depthMemo[x];};// 找出所有满足 depth(c) k-1 的 popcount 值 cconst targets [];for (let i 1; i 60; i) {if (getDepth(i) k - 1) {targets.push(i);}}if (targets.length 0) return 0;const s n.toString(2); // n 的二进制字符串const m s.length;let ans 0;for (const c of targets) {// memo[pos][ones]仅非 tight 状态有效const memo Array.from({ length: m }, () new Array(c 1).fill(null));const dfs (pos, ones, tight) {if (ones c) return 0; // 1 的个数已超剪枝if (pos m) {return ones c ? 1 : 0;}if (!tight memo[pos][ones] ! null) {return memo[pos][ones];}const limit tight ? parseInt(s[pos]) : 1;let res 0;for (let d 0; d limit; d) {res dfs(pos 1, ones d, tight (d limit));}if (!tight) {memo[pos][ones] res;}return res;};ans dfs(0, 0, true);}// k1 的特殊处理popcount1 包含 x1但 depth(1)0需排除if (k 1) {ans - 1;}return ans;};---JavaScript 实现要点要点 说明n.toString(2) 将 n 转为二进制字符串作为数位 DP 的上界手动记忆化 用二维数组 memo[pos][ones] 存储非 tight 状态的结果null 表示未计算闭包递归 dfs 作为闭包捕获 s、m、c、memo避免全局污染类型安全 n ≤ 10¹⁵ 2⁵³JavaScript number 可精确表示无需 BigIntk1 修正 popcount 1 会把 x 1 算入但其深度为 0需减去时间复杂度 O(log² n)空间复杂度 O(log² n)

相关新闻

AI 电动窗帘电机智能功率 精准控制 完整选型方案

AI 电动窗帘电机智能功率 精准控制 完整选型方案

随着 AI 技术在智能家居中的普及,电动窗帘电机正朝着静音化、精准控制、低功耗与高集成度发展。微碧半导体(VBsemi)基于先进的 Trench 工艺,为您提供覆盖电机驱动、电源管理、智能控制的全套 MOSFET 解决方案,满足 AI …

2026/10/17 22:44:54 阅读更多 →
嵌入式DMM中断机制:从原理到实战的错误处理与配置指南

嵌入式DMM中断机制:从原理到实战的错误处理与配置指南

1. DMM中断机制:嵌入式数据流处理的“哨兵”与“调度员”在嵌入式系统的世界里,数据就像一条永不停息的河流,而中断机制则是这条河流上最敏锐的哨兵和最果断的调度员。当数据流出现异常,比如水位过高即将溢出,或者有不…

2026/10/17 18:32:17 阅读更多 →
基于Java协同过滤推荐算法的二手房销售及房屋租赁系统任务书

基于Java协同过滤推荐算法的二手房销售及房屋租赁系统任务书

一、课题研究背景与意义 随着城市人口流动加剧与城镇化稳步推进,城市二手房交易与房屋租赁市场规模持续扩大,成为城市居民安居置业的主要选择。当前房产市场房源数量庞大、户型多样、价格波动频繁、区域分布零散,传统线下房产中介模式存在信息…

2026/10/17 23:34:58 阅读更多 →

最新新闻

2026年远控软件市场六大主流产品对比与选型指南

2026年远控软件市场六大主流产品对比与选型指南

干远控这行久了,每年年底都要把市面上主流产品拉出来过一遍,看技术走向、看打法变化。2026年的这份答卷,变化比我预想的要大。前几年大家聊远程控制,张口闭口都是“能不能连上”“快不快”,现在所有人问的是“连得稳不…

2026/10/19 0:55:09 阅读更多 →
基于单片机的门禁系统设计:从硬件选型到状态机实现

基于单片机的门禁系统设计:从硬件选型到状态机实现

简介:这份资源是一篇完整的学位论文文档,主题为基于单片机的门禁系统设计,面向计算机、电子信息及自动化相关专业的本科生与研究生,可用于毕业设计选题参考、课程设计借鉴或论文写作模板学习。文档围绕写字楼安全管理场景&#xf…

2026/10/19 0:55:09 阅读更多 →
天然气管道内检测机器人检测节设计:漏磁检测、图纸与说明书

天然气管道内检测机器人检测节设计:漏磁检测、图纸与说明书

做天然气管道内检测机器人,最容易被外行低估的就是“检测节”这个部分。很多人以为检测节就是一根芯轴加一圈传感器探头,等真正动手画图、出三维、写说明书的时候才发现:既要保证漏磁信号采集质量,又要整套设备在管道里跑得过去、…

2026/10/19 0:54:08 阅读更多 →
天地图API开发实战:源码解析、密钥配置与WMTS瓦片加载

天地图API开发实战:源码解析、密钥配置与WMTS瓦片加载

简介:面向 Vue 前端开发者的一套天地图 API 完整源码示例包,基于 Element Plus UI 框架构建地图应用,系统演示了从初始化地图、点标记管理、位置搜索、距离测量到卫星/地图切换、全屏显示等核心交互功能的完整编码流程,适合需要快…

2026/10/19 0:54:08 阅读更多 →
AI自动排优先级:应付账款智能排序方案与资金管理优化实践

AI自动排优先级:应付账款智能排序方案与资金管理优化实践

付款顺序这件事,看上去是个"把到期日排个先后"的小问题,真正做下来才发现里面全是水。我接触过一个真实的案例:某制造业公司账上每月要付出去的资金在一个亿上下,应付账款挂了几百笔,供应商从几十家到上百家…

2026/10/19 0:54:08 阅读更多 →
黑熊检测专用数据集:小目标、强遮挡、光照突变下的野外落地方案

黑熊检测专用数据集:小目标、强遮挡、光照突变下的野外落地方案

简介:本资源为面向目标检测初学者与算法实践者的黑熊(棕熊)专用检测数据集,适用于YOLO系列等主流检测模型的训练、验证与部署调试。数据集基于COCO2017精筛构建,共含1009张高质量标注图像(jpg)&…

2026/10/19 0:54:08 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →