美文网首页
Leecode 位运算

Leecode 位运算

作者: 阿宝阿贝 | 来源:发表于2020-10-28 16:17 被阅读0次

231. 2的幂

三种位运算方法
因为2次幂均为 1000000形式,n-1即为0111111111形式
负数为源码补码加一 1000000000 对应负数

return n>0 && (n&n-1)==0;
return n>0 && (n&-n)==n;
return n>0 && (1<<30)%n==0;
判断质数
## 常规算法
bool isprimer(int n){
    for(int i = 2; i<n-1 ;i++){
          if(n%i == 0) return 0;
  }
    return 1;
}
## 改进算法,采用sqrt(n)

bool is_prime2(unsigned long long n) { //unknow
    long long stop = sqrt(n) + 1;
    if (n == 2) {
        return true;
    }
    if (n % 2 == 0) {
        return false;
    }
    for (int i = 3; i <= stop; i += 2) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

762. 二进制表示中质数个计算置位

for (int k = i;k; k >>= 1) nn += k & 1;   # 判断二进制个数
int countPrimeSetBits(int L, int R) {
        unordered_set<int> pp({2,3,5,7,11,13,17,19,23,29});
        int res = 0;
        for (int i = L; i <= R; i++) {
            int nn = 0;
            for (int k = i;k; k >>= 1) nn += k & 1;
            //cout << nn << endl;
            if (pp.count(nn)) res++;
            //cout << res << endl;
        }
        return res;

136. 只出现一次的数字

输入: [4,1,2,1,2]
输出: 4

#运用异或解决
for(auto x:nums) return res^=x;
#消消乐

476. 数字的补数

输入: 5
输出: 2
解释: 5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。

#运用位运算
int res=0,t=0;
while(num){
    res+= !(num&1)<<t;
    t++;
    num>>1;
}
return res;

137. 只出现一次的数字 II

统计32位 1的个数,模3余一保留即为单独数字

相关文章

  • Leecode 位运算

    231. 2的幂[https://leetcode-cn.com/problems/power-of-two/] ...

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • Leetcode 比特位计数

    题目描述 leecode第338题:比特位计数[https://leetcode-cn.com/problems/...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算

    位运算 1. &:按位与 规律:一假则假任何位上的数和1相&得到的结果还是那个数 2. |:按位或 规律:一真则真...

  • 位运算

    https://leetcode.com/problems/gray-code/description/这个位运算...

  • 位运算

    位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不...

网友评论

      本文标题:Leecode 位运算

      本文链接:https://www.haomeiwen.com/subject/nvsvmktx.html