leetcode位运算
岗岗ganggang
这个作者很懒,什么都没留下…
展开
-
剑指 Offer II 005. 单词长度的最大乘积python
题目描述:题解:思路:1.用一个int数字word_int[i]表示words[i]的字母出现情况。2.如果word_int[i]和word_int[j]按位与操作结果为0,说明words[i]与words[j]无重复字符。3.python按位与操作符&,按位或|,按位异或^。python中char转int ord(char),int转char char(int)class Solution: def maxProduct(self, words: List[s原创 2021-12-30 11:00:32 · 322 阅读 · 0 评论 -
剑指 Offer 56 - I. 数组中数字出现的次数python
题目描述:题解一:dict1.利用list result保存最终只出现一次的两个数字,numsdict记录nums每个数字num出现的次数。2.遍历nums,如果当前num不在numsdict中,说明num是只出现一次的数字,或者是出现两次数字的第一次,将num加入result,然后numsdict[num]设置为1。如果num在numsdict中,说明num已经在数组中出现第二次,如果之前num加入了result,则将num从result去掉。class Solution:原创 2021-12-15 10:46:53 · 570 阅读 · 0 评论 -
剑指 Offer 65. 不用加减乘除做加法python
题目描述:题解:class Solution: def add(self, a: int, b: int) -> int: return add(a ^ b, (a & b) << 1) if b else a原创 2021-12-14 10:55:50 · 69 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数python
题目描述:题解:1.count记录n中1的个数。2.每次通过与1做按位与运算,判断n的最后一位是否为1,结果加入count,n左移一位class Solution: def hammingWeight(self, n: int) -> int: count = 0 while n>0: bit = n&1 count = count+bit n = .原创 2021-12-14 10:29:06 · 436 阅读 · 0 评论 -
leetcode 318. 最大单词长度乘积 python
题目描述:题解一:超时未通过基本思路:利用set自动去重性质1.在两个for循环中依次比较words中的两个单词word[i]和word[j]。2.分别用两个小set保存两个单词中出现的字母,然后用一个大set保存在这两个单词中出现的所有字母,然后判断两个小set长度之和是否等于大set的长度,如果相等,说明没有重复字母,计算长度乘积。class Solution(object): def maxProduct(self, words): word_num.原创 2021-11-17 10:42:31 · 225 阅读 · 0 评论