
位运算
1
无敌的神龙战士
我是废物
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
位运算 x & (x-1)
可以利用 x & (x-1)来消除x的最后一位1 常用if(n&(1<<i)==0)用于判断n的第i位是否为0原创 2021-10-25 11:00:21 · 287 阅读 · 0 评论 -
476. 数字的补数
数字的补数 给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。 示例 1: 输入:num = 5 输出:2 解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。 示例 2: 输入:num = 1 输出:0 解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。 class Solution { public: int findComplement(int num) { int temp .原创 2021-08-12 11:36:57 · 82 阅读 · 0 评论 -
693. 交替位二进制数
交替位二进制数 给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 示例 1: 输入:n = 5 输出:true 解释:5 的二进制表示是:101 示例 2: 输入:n = 7 输出:false 解释:7 的二进制表示是:111. 示例 3: 输入:n = 11 输出:false 解释:11 的二进制表示是:1011. 示例 4: 输入:n = 10 输出:true 解释:10 的二进制表示是:1010. 示例 5: 输入:n = 3.原创 2021-08-12 10:55:25 · 66 阅读 · 0 评论 -
338. 比特位计数
比特位计数 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 进阶: 给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗? 要求算法的空间复杂度为O(n)。 你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的 .原创 2021-08-11 22:39:52 · 74 阅读 · 0 评论 -
342. 4的幂
4的幂 给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x 示例 1: 输入:n = 16 输出:true 示例 2: 输入:n = 5 输出:false 示例 3: 输入:n = 1 输出:true 提示: -231 <= n <= 231 - 1 class Solution { public: bool isPowerOfFour(int n) .原创 2021-08-11 10:27:26 · 60 阅读 · 0 评论 -
136. 只出现一次的数字
只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 class Solution { public: int singleNumber(vector<int>& nums) { int result = 0; .原创 2021-08-11 09:55:41 · 62 阅读 · 0 评论 -
190. 颠倒二进制位
颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。 进阶: 如果多次调用这个函数,你将如何优化你的算法? 示例 1: 输入: 0.原创 2021-08-11 09:35:12 · 56 阅读 · 0 评论 -
461. 汉明距离
汉明距离 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 示例 1: 输入:x = 1, y = 4 输出:2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。 示例 2: 输入:x = 3, y = 1 输出:1 提示: 0 <= x, y <= 231 - 1 class Solution { public: .原创 2021-08-10 22:52:37 · 74 阅读 · 0 评论