classSolution:
def totalHammingDistance(self, nums: List[int])->int:
a =len(nums) # 总个数
iflen(nums)==0:return0
a2 =max(nums)
c =[0for i in range(0,a2)]for i in nums:if i==0:continue
s=bin(i)[2:]# print(s)for i in range(len(s)):if s[len(s)-i-1]=='1':
c[i]+=1# print(c)
ans=0for i in c:
ans+=i*(len(nums)-i)return ans
2.看题解,差不多,原来是自己把列表大小开错了,o(╥﹏╥)o:
classSolution:
def totalHammingDistance(self, nums: List[int])->int:
a =len(nums) # 总个数
iflen(nums)==0:return0
a2 =max(nums)
c =[0for i in range(0,len(bin(a2))-2)]for i in nums:if i==0:continue
s=bin(i)[2:]# print(s)for i in range(len(s)):if s[len(s)-i-1]=='1':
c[i]+=1# print(c)
ans=0for i in c:
ans+=i*(len(nums)-i)return ans