Leetcode bit manipulation 总结

本文介绍了多种基于位操作的算法技巧及其应用场景,包括利用XOR解决单例问题、位运算统计、位反转、位计数等,并提供了具体的LeetCode题目示例及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

136. Single Number

利用Xor 求结果

137. Single Number II

统计数字出现的数目,如果是1被整除,这一位是0,如果没有被1整除则这一位是0;

260. Single Number III

利用其中的一位数字区别两个数,然后将两个数构成两个集合,这两个集合分别求XOR,得到的结果就是这两位数。

190. Reverse Bits

得到最低位的数字然后将结果进行向左移动

191. Number of 1 Bits

每次用 n = n & (n - 1) 可以去掉一位1

268. Missing Number

一样的进行Xor

231. Power of Two

https://leetcode.com/problems/power-of-two/

掌握了n & (n - 1) = 0 there is just one 1 bit in n; so n is a power of 2;

318. Maximum Product of Word Lengths

主要是判断两个字符串是否还有相同的字符,可以利用1进行一位,然后对数字做或运算

得到的结果,如果得到的结果不为0,则说明有相同的字符,这样的结果就可以跳过。

201. Bitwise AND of Numbers Range

看别人的结果有一个很巧的答案

public class Solution {
  public int rangeBitwiseAnd(int m, int n) {
     while (n > m) {
          n = n & n - 1;
     }
     return m & n;
   }  
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值