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/7/19 0:49:03 阅读更多 →
嵌入式DMM中断机制:从原理到实战的错误处理与配置指南

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

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

2026/7/19 0:48:03 阅读更多 →
基于Java协同过滤推荐算法的二手房销售及房屋租赁系统任务书

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

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

2026/7/19 0:48:03 阅读更多 →

最新新闻

直播礼物 SVGA 总闪屏、串回调?uni-app 原生播放组件实战

直播礼物 SVGA 总闪屏、串回调?uni-app 原生播放组件实战

做直播礼物、入场特效、会员开通或活动奖励时,SVGA 往往不是“能播放就行”。真正麻烦的是连续礼物到来后画面闪一下、旧动画的回调跑到新动画上、资源还没加载完就被下一条覆盖;接完原生 SDK 后,又发现普通调试基座根本没有对应依赖。如果项…

2026/7/19 2:12:34 阅读更多 →
Mac Mouse Fix终极指南:如何用10美元鼠标在macOS上超越苹果触控板体验

Mac Mouse Fix终极指南:如何用10美元鼠标在macOS上超越苹果触控板体验

Mac Mouse Fix终极指南:如何用10美元鼠标在macOS上超越苹果触控板体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fi…

2026/7/19 2:12:34 阅读更多 →
AI工具解除限制与平台聚合风险解析

AI工具解除限制与平台聚合风险解析

最近在几个技术社群里,看到不少人在讨论“解除限制”的 AI 工具,尤其是围绕一些新版本模型。很多新手朋友一看到“免费”“无脑入手”“无限使用”这样的字眼就特别兴奋,恨不得马上安装体验。但作为一个折腾过不少开源模型和工具的人&#xf…

2026/7/19 2:12:34 阅读更多 →
Vue3双向绑定原理与defineModel()实战指南

Vue3双向绑定原理与defineModel()实战指南

1. Vue双向绑定机制解析双向数据绑定是Vue框架最核心的特性之一,它实现了视图层与数据层的自动同步。在传统的前端开发中,我们需要手动操作DOM来更新视图,或者通过事件监听来获取用户输入。而Vue的双向绑定机制则将这些繁琐的操作封装起来&am…

2026/7/19 2:12:34 阅读更多 →
C++单元测试架构设计实战:构建可维护的测试基础设施

C++单元测试架构设计实战:构建可维护的测试基础设施

1. 项目概述:为什么我们需要一个可维护的测试架构?在C项目里摸爬滚打十几年,我见过太多项目在初期为了赶进度,把单元测试写成了一堆散落在各个角落的.cpp文件。这些测试代码往往和业务代码高度耦合,充斥着大量的重复逻…

2026/7/19 2:12:34 阅读更多 →
RecyclerView核心原理与Android列表优化实践

RecyclerView核心原理与Android列表优化实践

1. RecyclerView基础概念与核心价值RecyclerView作为Android开发中最常用的列表控件,其设计初衷是为了解决传统ListView在性能上的瓶颈。记得2014年我第一次在项目中使用RecyclerView时,就被它流畅的滚动体验所震撼。与ListView相比,Recycler…

2026/7/19 2:11:34 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻