随笔分类 -  Leetcode-位运算

Leetcode练习(Python):位运算类:第201题:数字范围按位与:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。
摘要:题目: 数字范围按位与:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。 思路: 因为是连续递增的数,可以通过移位来实现。 程序1:暴力大法,自然超时。 class Solution: def rangeBit 阅读全文
posted @ 2020-05-18 17:35 桌子哥 阅读(670) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):位运算类:第137题:只出现一次的数字 II:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
摘要:题目: 只出现一次的数字 II:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 思路: 第一感觉是使用哈希表,但是不允许使用额外空间,位运算可以没有想到,先用这种方法实 阅读全文
posted @ 2020-05-18 17:23 桌子哥 阅读(630) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):位运算类:第190题:颠倒二进制位:颠倒给定的 32 位无符号整数的二进制位。
摘要:题目: 颠倒二进制位:颠倒给定的 32 位无符号整数的二进制位。 思路: 思路较简单。 程序: class Solution: def reverseBits(self, n: int) -> int: if not n: return 0 result = 0 for index in range 阅读全文
posted @ 2020-05-18 16:43 桌子哥 阅读(693) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):位运算类:第191题:位1的个数:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
摘要:题目: 位1的个数:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 思路: 本题思路简单。 程序: class Solution: def hammingWeight(self, n: int) -> int: if not n: retur 阅读全文
posted @ 2020-05-18 11:06 桌子哥 阅读(692) 评论(0) 推荐(0) 编辑