【LeetCode】每日一题 2024_1_12 按位与结果大于零的最长组合(位运算)
前言
每天和你一起刷 LeetCode 每日一题~
LeetCode 启动!
题目:按位与结果大于零的最长组合
代码与解题思路
先读题:题目给了一个数组,让我们在数组选择一个 子序列 ,子序列中所有的数 按位与 的结果要大于 0
核心问题就在于,如何在 O(N) 的复杂度下,找到最长的所有数按位与大于 0 的子序列,常见的思路是通过枚举元素的比特位达成目的
枚举比特位:举个例子,让数组每一个元素的第一位进行 & 操作,只要 == 1 就证明结果必定 > 0,让计数++,具体代码如下:
▼go复制代码func largestCombination(candidates []int) (ans int) { n := bits.Len(uint(slices.Max(candidates))) // 获取数组中最长的比特位 for i := range n { cnt := 0 // 记录每个比特位能达成的最长长度 for _, v := range candidates { cnt += v>>i & 1 // 如果 & 1 == 1 长度就 + 1 } ans = max(ans, cnt) } return ans }
每天进步一点点,我们明天不见不散~
可以和我刷一辈子的每日一题吗? 一题一题,积累起来就是一辈子。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
day48伙伴匹配系统开始用ai编写了,基本上都是描述,让ai改动。写好了卡片还有redis,个人用户编辑可以完成了,同时完善了很多前后端功能。不过,我细节没有去做,所以我并不是很熟悉改动了啥。科大讯飞笔试,选择题还行一半一半,出了很多操作系统,数据结构的题,这部分还没刷,编程题很简单,max-a,卡了一会儿,后面觉得是简单leetcode。aicoding先是readme,后面再根据报错改动,原
3
项目部署 | 宝塔 Linux 面板—万能视频下载器
3
Day 29✅ 今天做了:Redis消息队列⏰ 明天计划:继续学消息队列
2
Day 17🧭行动:学习了Python最后一个知识点:异常处理🤓体会:Python 程序一旦发生异常,如果没有捕获处理,程序就会直接崩溃终止。使用"try-except"捕获异常,可以预先写好异常处理方案:比如打印友好提示、记录日志、释放资源,保证程序不会直接退出,还能继续运行。🧑💻代码:try:print("================================")# pri
2
Day1今天学习了java中if的使用
0
作者分享
我的 2024 年度总结 —— 人生漫漫,何妨一试
68
寒假闲聊 01
1、随便聊聊 & 年终总结预告
这段时间家里发生了一些变故 . . . 我的人生规划也因此有了一些变化
欲知详情如何,可以等我的 2024 年终总结(没错,这次闲聊其实是年终总结的预告哒~)
2、美食分享~
妈妈做的豌豆炒肉+ 手工腊肠,每到过年,广东地区必备过冬食材,腊肉和腊肠~
8
【LeetCode】每日一题 2024_1_14 超过阈值的最少操作数 I(简单模拟)
6
【LeetCode】每日一题 2024_1_13 分割数组的方案数(数组)
5
【LeetCode】每日一题 2024_1_11 求出数字答案(数学/遍历/读题)
5

