LeetCode 982. 按位与为零的三元组(位运算+计数)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定一个整数数组 A,找出索引为 (i, j, k)
的三元组,使得:
0 <= i < A.length
0 <= j < A.length
0 <= k < A.length
A[i] & A[j] & A[k] == 0,其中 & 表示按位与(AND)操作符。
示例:
输入:[2,1,3]
输出:12
解释:我们可以选出如下 i, j, k 三元组:
(i=0, j=0, k=1) : 2 & 2 & 1
(i=0, j=1, k=0) : 2 & 1 & 2
(i=0, j=1, k=1) : 2 & 1 & 1
(i=0, j=1, k=2) : 2 & 1 & 3
(i=0, j=2, k=1) : 2 & 3 & 1
(i=1, j=0, k=0) : 1 & 2 & 2
(i=1, j=0, k=1) : 1 & 2 & 1
(i=1, j=0, k=2) : 1 & 2 & 3
(i=1, j=1, k=0) : 1 & 1 & 2
(i=1, j=2, k=0) : 1 & 3 & 2
(i=2, j=0, k=1) : 3 & 2 & 1
(i=2, j=1, k=0) : 3 & 1 & 2提示:
1 <= A.length <= 1000
0 <= A[i] < 2^16
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/triples-with-bitwise-and-equal-to-zero
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 两个数 & 操作后,不会变大,开数组记录两两 & 的结果的数量
class Solution {public:int countTriplets(vector<int>& A) {vector<int> count(1<<16, 0);//两个数 & 操作后,不会变大for(int i = 0; i < A.size(); ++i){for(int j = 0; j < A.size(); ++j){count[A[i] & A[j]]++;}}int ans = 0;for(int i = 0; i < A.size(); ++i){for(int j = 0; j < (1<<16); ++j){if((A[i] & j) == 0)ans += count[j];}}return ans;}
};
时间复杂度 O(216n)O(2^{16}n)O(216n)
648 ms 14.7 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 982. 按位与为零的三元组(位运算+计数)相关推荐
- 982. 按位与为零的三元组
给定一个整数数组 A,找出索引为 (i, j, k) 的三元组,使得: 0 <= i < A.length 0 <= j < A.length 0 <= k < A ...
- LeetCode 136. Single Number【哈希表/位运算/数学】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12.由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止:由于LeetCode还在不断地创建新 ...
- Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)
535. TinyURL 的加密与解密 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它 ...
- 134. Leetcode 136. 只出现一次的数字 (位运算-只出现一次的数字相关题目)
class Solution:def singleNumber(self, nums: List[int]) -> int:res = 0for i in range(len(nums)):re ...
- 【LeetCode笔记】461. 汉明距离(Java、位运算)
文章目录 题目描述 思路 & 代码 更新版 题目描述 既然是二进制,那就十有八九用位运算符 既然是不同,那肯定用异或 思路 & 代码 两种方法,总体来说都是处理异或值 方法一,转换成字 ...
- [Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]
[问题描述][中等] [解答思路] 1. 暴力 逐位与 ,只需要判断i= 0 或 i == 2147483647 的话,就跳出 for 循环即可. 时间复杂度:O(N) 空间复杂度:O(1) publ ...
- python:实现Triplets with zero sum零和三元组(附完整源码)
python:实现Triplets with zero sum零和三元组 def find_Triplets_with_zero_sum(arr, num):found = False# sort a ...
- 【LeetCode 172. 阶乘后的零】
LeetCode 172. 阶乘后的零 题目描述 解题思路 class Solution {public int trailingZeroes(int n) {//思路//计算阶乘后为零的个数 因为2 ...
- LeetCode位运算(找出落单的数,二进制中1的个数,2的幂等)
文章目录 位运算理论+技巧介绍 1.与 & 2.异或 ^ 3.移位及综合运用(指定位置) 4.同或 开撸 1. lc136 只出现一次的数字 2. lc137 只出现一次的数字II 3. lc ...
最新文章
- python 加密和解密
- 借花献佛!docker讲解视频
- jqGrid参数详解
- python求积分基于numpy_NumPy 实现梯形法积分
- 互斥量和信号量的区别
- 计算机组成原理期末复习题
- ES6的class方法基本用法
- julia 数组类型转换_在Julia中确定类型的超类型
- 2015.10.13课堂
- cuda10.2安装包 和 cudnn安装包下载
- svn 迁移到git下全过程
- Java 重写(Override)与重载(Overload)区别
- 计算机丢失w95scm.dll,修复w95scm.dll
- 射频微电子学_专注于射频前端芯片,苏州汉天下完成新一轮融资
- gg修改器怎么能让服务器检测不到,gg修改器怎么绕过检测 | 手游网游页游攻略大全...
- 在聊天群中,如何快速获取信息,了解群中讨论的话题。
- 电商用户价值分析(应用RFM模型)
- WAF(Web Application Firewall)
- 爬取掌阅app免费电子书数据
- 项目开发中,数据库是怎么设计的?
热门文章
- 访问linux服务主机,如何把Linux配置为日志服务主机。
- python画两条曲线图_python绘制多个曲线的折线图
- 解决AttributeError AttributeError: 'NoneType' object has no attribute 'filename'
- MySQL InnoDB 是如何存储数据的
- C++异常以及错误处理
- Duplicate interface definition for class
- linux grep 匹配空格_17 个案例,5 分钟简单搞定 Linux 正则表达式!
- 小程序转h5之后 vant文件查找失败:_你还在使用原生开发小程序吗
- ci phpexcel mysql_PHPExcel导入数据到mysql数据库
- java sheet 打印区域设定,如何使用Java设置电子表格的打印区域。(How to set the print area of a spreadsheet using Java.)...