力扣第134场双周赛压轴题:子数组按位与值为K的数目
题目描述
给你一个整数数组
子数组是数组中连续的非空元素序列。
数据范围
解题思路
定义如下数组
map<int,int> dp[]
考虑
- ...
由于
代码实现
long long countSubarrays(vector<int> &nums, int k) {
long long res = 0;
unordered_map<int, int> pre;
for (auto &num: nums) {
unordered_map<int, int> cur = {{num, 1}};
// num[i]本身值为k
if (num == k)res++;
// 由pre得到cur
for (auto &[r, m]: pre) {
int t = r & num;
cur[t] += m;
if (t == k)res += m;
}
pre = cur;
}
return res;
}
时间复杂度:
空间复杂度:
END
文章文档:公众号 字节幺零二四
回复关键字可获取本文文档。
题目来源:力扣第134场双周赛T4:子数组按位与值为K的数目
文章声明:题目来源 力扣 平台,如有侵权,请联系删除!
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 独立开发,这条路可行吗?
· 我在厂里搞 wine 的日子
· 如何通过向量化技术比较两段文本是否相似?
· 35+程序员的转型之路:经济寒冬中的希望与策略
· JavaScript中如何遍历对象?
· 独立开发,这条路可行吗?
· C#源生成器:让你的代码飞起来的黑科技
· Java简历、面试、试用期、转正
· Java开发AI项目,太爽了!LangChain4j保姆级教程
· 极大提高项目部署的生产力!分享一个半自动化的CICD实现方案