【汉明距离总和】python刷题记录

R4-数与位篇

python 复制代码
class Solution:
    def totalHammingDistance(self, nums: List[int]) -> int:
        #创建计数器
        trie=Counter()
        max_bit=len(bin(max(nums)))-2
        ret=0
        for i,num in enumerate(nums):
            for j in range(max_bit):
                #一位位地取出来
                bit=(num>>j)&1
                if bit:
                    ret+=i-trie[j]
                    trie[j]+=1
                else:
                    ret+=trie[j]
        return ret

ps:

counter的用法

python 复制代码
from collections import Counter

# 初始化一个空的 Counter 对象
trie = Counter()

# 添加一些元素
trie.update(['a', 'b', 'a', 'c', 'b', 'a'])

# 查看每个元素的出现次数
print(trie)  # 输出 Counter({'a': 3, 'b': 2, 'c': 1})

# 获取元素 'a' 的计数
print(trie['a'])  # 输出 3

# 如果元素不存在,返回0
print(trie['d'])  # 输出 0

# 添加更多元素
trie['a'] += 1  # 等同于 trie.update(['a'])
print(trie)  # 输出 Counter({'a': 4, 'b': 2, 'c': 1})

# 获取出现次数最多的元素
print(trie.most_common(1))  # 输出 [('a', 4)]
相关推荐
Mintopia21 小时前
🧠 一文吃透 Next.js 中的 JWT vs Session:底层原理+幽默拆解指南
前端·javascript·全栈
葛小白121 小时前
Winform控件:Combobox
前端·ui·c#·combobox
政采云技术21 小时前
前端设计模式详解
前端·设计模式
前端开发爱好者21 小时前
字节出手!「Vue Native」真的要来了!
前端·javascript·vue.js
前端开发爱好者21 小时前
国产 Canvas 引擎!神器!
前端·javascript·vue.js
Canace21 小时前
浏览器渲染原理概述
前端·性能优化·浏览器
小马哥编程21 小时前
【软件架构】数据库系统与缓存设计:五种缓存一致性方案
数据库·缓存
啃火龙果的兔子21 小时前
前端八股文性能调优篇
前端·前端框架
JarvanMo21 小时前
停止与 Compose 导航作斗争(这 5 个技巧将改变一切)
前端
DemonAvenger21 小时前
Redis持久化策略对比:RDB与AOF的最佳实践与场景选择
数据库·redis·性能优化