leetcode上的位运算
2024-10-07 16:35:43
136-只出现过一次的数字
思路:可以考虑到数字以二进制形式存储,当两个不同的数字异或的时候会是true,所以把数组里的数字都一一处理一遍就可以了。
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res=0;
for(auto num:nums) res^=num;
return res;
}
};
201-数字范围按位与
思路:m和n每次向右平移一位直到相等为止,记录下平移的次数i,然后让m往左平移i位即为所求
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int i=0;
while(m!=n){
m>>=1;
n>>=1;
i++;
}
return (m<<i);
}
};
477-汉明距离总和
思路:规律查找发现,每一位上1的数量乘于0的数量就是当前位的结果,然后统计相加就可以得出结果了。
class Solution {
public:
int totalHammingDistance(vector<int>& nums) {
int res=0,n=nums.size();
for(int i=0;i<32;i++){
int cnt=0;
for(int num:nums){
if(num&(1<<i)) cnt++;
}
res+=cnt*(n-cnt);
}
return res;
}
};
421-最大异或值
思路:
868-二进制间距
思路:
最新文章
- iOS开发——高级特性&;Runtime运行时特性详解
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
- Linux中常用操作命令
- 深入探析koa之异步回调处理篇
- 如何判断一个变量是数组Array类型
- CSS3学习笔记之linear-gradient
- HDU4869:Turn the pokers(费马小定理+高速幂)
- LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)
- ASP.NET Web API相关
- RabbitMQ 入门指南——安装
- Android Studio 小新兵
- 【Java】 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)
- db2 sql调优
- JavaScript pop()函数弹出数组最后数据
- Numpy 的常用操作
- Python构建web应用(进阶版)->;对网页HTML优化逻辑显示
- Linux GCC编译库
- hdu-1022-栈
- moment.js(moment-in-node.js)获取本月最后一天 不指定
- Ubuntu 16.04 如何使用Samba服务器