位运算
leetcode位运算
earlene_wyl
这个作者很懒,什么都没留下…
展开
-
leetcode 231 && 342 && 371 && 318 && 338
leetcode231. 2 的幂 easy 题目描述: 解题思路: n大于0,且二进制表示只有一个1即可 代码: // class Solution { public: bool isPowerOfTwo(int n) { return n > 0 && (n & (n -1)) == 0; // n 大于0, 且只有一个1 } }; leetcode342. 4的幂 easy ...原创 2021-12-16 00:40:10 · 627 阅读 · 0 评论 -
leetcode 190. 颠倒二进制位 easy
leetcode190. 颠倒二进制位 easy 题目描述: 解题思路: 逐位颠倒 代码: // class Solution { public: uint32_t reverseBits(uint32_t n) { uint32_t res = 0; for (int i = 0; i < 32; i++){ res <<= 1; ...原创 2021-12-16 00:40:17 · 62 阅读 · 0 评论 -
leetcode 260. 只出现一次的数字 III medium
leetcode260. 只出现一次的数字 III medium 题目描述: 解题思路: 两个不相等的元素在位级表示上必定会有一位存在不同。 将数组的所有元素异或得到的结果为不存在重复的两个元素异或的结果。 flag &= -flag 得到出 flag 最右侧不为 0 的位,也就是不存在重复的两个元素在位级表示上最右侧不同的那一位,利用这一位就可以将两个元素区分开来。 代码: class Solution { public: vect...原创 2021-12-15 19:12:40 · 188 阅读 · 0 评论 -
leetcode 268. 丢失的数字 easy
leetcode268. 丢失的数字 easy 题目描述: 解题思路: 还是利用异或的性质, 先得到【0,n】异或的值,再挨个异或数组里的值 代码: // class Solution { public: int missingNumber(vector<int>& nums) { int res = 0; for (int i = 0; i <= nums.size(); i++) ...原创 2021-12-15 18:55:15 · 762 阅读 · 0 评论 -
leetcode 136. 只出现一次的数字 easy
leetcode136. 只出现一次的数字 easy 题目描述: 解题思路: a^a = 0, a^0 = a 异或满足交换律结合律 代码: class Solution { public: int singleNumber(vector<int>& nums) { int res = 0; for (auto num: nums) res ^= num; ret...原创 2021-12-15 18:47:23 · 181 阅读 · 0 评论 -
leetcode 461. 汉明距离 easy
leetcode461. 汉明距离 easy 题目描述: 解题思路: 异或, 然后n&(n-1)把最后一个1变为0来统计1的个数 代码: // class Solution { public: int hammingDistance(int x, int y) { int cur = x^y; int res = 0; while(cur){ res += 1; ...原创 2021-12-15 18:43:55 · 189 阅读 · 0 评论 -
刷题(4)-位运算(1)总结
一.位运算 主要看一,二章 位运算总结 十进制->二进制 正数:正常 除2取余 除2取余 负数: 补码 (先把它当成正数算2进制,然后各位取反,再+1) -1的补码全是11111 二进制->十进制 正数:正常 2的n-1次方 负数:同样 各位取反 ,再+1 然后算十进制,最后加个负号 (连着符号位 都取...原创 2019-09-06 20:57:03 · 259 阅读 · 0 评论