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) 编辑
Leetcode练习(Python):位运算类:第137题:只出现一次的数字 II:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
摘要:题目: 只出现一次的数字 II:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 思路: 第一感觉是使用哈希表,但是不允许使用额外空间,位运算可以没有想到,先用这种方法实
阅读全文
posted @
2020-05-18 17:23
桌子哥
阅读(630)
推荐(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) 编辑
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) 编辑