统计按位或能得到最大值的子集数目(三)
📅 2026/7/22 12:27:29
👁️ 次浏览
方法二回溯思路记 n 是数组 nums 的长度。方法一的缺点是计算不同状态的按位或的值都需要消耗 O(n) 的时间。这一步部分可以进行优化。每个长度为 n 比特的状态的按位或的值都是可以在长度为 n−1 比特的状态的按位或的值上计算出来的而这个计算只需要消耗常数时间。以此类推边界情况是长度为 0 比特的状态的按位或的值。我们定义一个搜索函数参数 pos 表示当前下标orVal 表示当前下标之前的某个子集按位或值这样就可以保存子集按位或的值的信息并根据当前元素选择与否更新 orVal 。当搜索到最后位置时更新最大值和子集个数。代码Python3class Solution: def countMaxOrSubsets(self, nums: List[int]) - int: maxOr, cnt 0, 0 def dfs(pos: int, orVal: int) - None: if pos len(nums): nonlocal maxOr, cnt if orVal maxOr: maxOr, cnt orVal, 1 elif orVal maxOr: cnt 1 return dfs(pos 1, orVal | nums[pos]) dfs(pos 1, orVal) dfs(0, 0) return cntJavaclass Solution { int[] nums; int maxOr, cnt; public int countMaxOrSubsets(int[] nums) { this.nums nums; this.maxOr 0; this.cnt 0; dfs(0, 0); return cnt; } public void dfs(int pos, int orVal) { if (pos nums.length) { if (orVal maxOr) { maxOr orVal; cnt 1; } else if (orVal maxOr) { cnt; } return; } dfs(pos 1, orVal | nums[pos]); dfs(pos 1, orVal); } }C#public class Solution { int[] nums; int maxOr, cnt; public int CountMaxOrSubsets(int[] nums) { this.nums nums; this.maxOr 0; this.cnt 0; DFS(0, 0); return cnt; } public void DFS(int pos, int orVal) { if (pos nums.Length) { if (orVal maxOr) { maxOr orVal; cnt 1; } else if (orVal maxOr) { cnt; } return; } DFS(pos 1, orVal | nums[pos]); DFS(pos 1, orVal); } }Cclass Solution { public: int countMaxOrSubsets(vectorint nums) { this-nums nums; this-maxOr 0; this-cnt 0; dfs(0, 0); return cnt; } void dfs(int pos, int orVal) { if (pos nums.size()) { if (orVal maxOr) { maxOr orVal; cnt 1; } else if (orVal maxOr) { cnt; } return; } dfs(pos 1, orVal| nums[pos]); dfs(pos 1, orVal); } private: vectorint nums; int maxOr, cnt; };Cvoid dfs(int pos, int orVal, const int* nums, int numsSize, int* maxOr, int* cnt) { if (pos numsSize) { if (orVal *maxOr) { *maxOr orVal; *cnt 1; } else if (orVal *maxOr) { (*cnt); } return; } dfs(pos 1, orVal | nums[pos], nums, numsSize, maxOr, cnt); dfs(pos 1, orVal, nums, numsSize, maxOr, cnt); } int countMaxOrSubsets(int* nums, int numsSize) { int cnt 0; int maxOr 0; dfs(0, 0, nums, numsSize, maxOr, cnt); return cnt; }复杂度分析时间复杂度O(2n) 其中 n 是数组 nums 的长度。状态数一共有 O(20 21 ... 2n) O(2×2n) O(2n) 种每次计算只消耗常数时间。空间复杂度O(n) 其中 n 是数组 nums 的长度。搜索深度最多为 n 。
课题申报,10个人申请,9个人被刷。你以为剩下那1个人真的比你强很多吗?并不是,只是他们更会站在评审角度写。今天2招,让你也学会用评审视角写出高分本子。
第一招:评审眼里的“真创新”长什么样
评审认可的创…
📅 2026/7/22 12:26:29
1. 项目概述:从“能用”到“稳定”的必经之路如果你正在用 Python 和 Selenium 做自动化测试或者网页数据抓取,那么你肯定对下面这个场景不陌生:精心写好的脚本,昨天还跑得好好的,今天一运行就报了一堆红字,…
📅 2026/7/22 12:26:29
1. 项目概述与核心挑战在嵌入式多媒体处理领域,尤其是视频编解码、网络视频传输这类应用,对处理器的数据吞吐能力有着近乎苛刻的要求。数据流需要在CPU、内存、视频端口、网络接口等多个组件之间高速、无阻塞地流动,任何一个环节的瓶颈都可能…
📅 2026/7/22 12:26:29
1. 项目概述:为高性能DSP打造“纯净血液”在嵌入式系统,尤其是像TI C6472/TCI6486这类多核、高主频的数字信号处理器设计中,电源系统的重要性怎么强调都不为过。它不仅仅是“供电”,更像是为整个系统提供“纯净血液”。一个不稳定…
📅 2026/7/22 13:58:15
1. 多核DSP内存管理的核心挑战与设计哲学 在通信基站、雷达信号处理或者高端医疗影像设备里,我们常常会看到德州仪器(TI)C66x这类多核DSP的身影。它们动辄八个核心,每个核心都能跑到1GHz以上,理论算力惊人。但真正把算…
📅 2026/7/22 13:58:15
上一篇我们把可观测性立起来了:streamEvents、LangSmith、结构化日志。出了错,你至少能看见「卡在哪一步」。
但说句扎心的:trace 再漂亮,也救不了窗口里塞的是垃圾。历史消息、RAG 片段、ToolMessage 一股脑堆进去——要么超限直…
📅 2026/7/22 13:58:15
内容质量自动评分:从错别字到逻辑连贯性的多层次检测
一、个性化深度引言
一个内容平台每天产生数万篇文章,覆盖科技、财经、生活等多个领域。编辑团队只有 20 人,一审通过率不到 30%。我们尝试用规则引擎做初筛——错别字、敏感词、字数不足…
📅 2026/7/22 13:58:15
在现代通信设备、工业控制、服务器、网络设备以及智能硬件系统中,连接器与线束组件承担着信号传输、电源连接以及系统互联的重要作用。随着设备集成度不断提升,市场对于高可靠、小型化、高速率连接方案的需求持续增长。 Amphenol ICC(Commerc…
📅 2026/7/22 13:58:15
1. 奇迹MU荣耀版游戏概述与核心玩法解析 奇迹MU作为一款运营近20年的经典MMORPG网游,其荣耀版本在保留经典玩法的基础上,针对移动端特性进行了全面优化。游戏以"勇者大陆"为背景,构建了包含剑士、魔法师、弓箭手三大职业的奇幻世界…
📅 2026/7/22 13:57:15
1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…
📅 2026/7/22 0:00:13
1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…
📅 2026/7/22 0:00:13
甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…
📅 2026/7/22 0:00:13
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/22 1:05:21
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/22 1:05:21
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/22 1:05:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/22 7:05:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/22 5:05:32