算法题技巧-Python collections.defaultdict
想使用哈希表存元素个数想起来defaultdict
dict和defaultdic的区别
访问不存在的键:
dict:当访问不存在的键时,会抛出KeyError异常。
defaultdict:当访问不存在的键时,会调用工厂函数返回一个默认值。
fruits = {"apple": 2, "banana": 1}
print(fruits["orange"]) # KeyError: 'orange'
fruit_count = defaultdict(int)
print(fruit_count["orange"]) # 输出:0
初始化默认值:
dict:需要手动为每个键设置初始值,例如使用setdefault方法。
defaultdict:在创建时通过工厂函数一次性设置所有键的初始值。
fruits = {}
fruits.setdefault("apple", 0)
fruits.setdefault("banana", 0)
fruit_count = defaultdict(int)
示例题目
https://www.lanqiao.cn/problems/3527/learning/

Ai!的累加结果,A1! + A2! + ... + An!,A1 < A2 < ... < An,则A1!为最大公因数
考虑阶乘的合并情况:有(x+1) * y个x!,能合并为y个(x+1)!。即合成条件为x!的个数为x+1的倍数
使用map存储某个数x的阶乘出现的次数,若达到一定次数,则转换为x+1的阶乘
from collections import defaultdict
n = int(input())
a = list(map(int, input().split()))
a.sort()
Map = defaultdict(int)
for x in a:
Map[x] += 1
x = a[0]
while True:
cnt = Map[x]
if cnt % (x + 1) == 0:
Map[x + 1] += cnt // (x + 1)
x += 1
else:
print(x)
break
算法题技巧-Python collections.defaultdict的更多相关文章
- python collections defaultdict
class_counts = defaultdict(int) 一.关于defaultdict 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collect ...
- Python collections.defaultdict 笔记
其实defaultdict 就是一个字典,只不过python自动的为它的键赋了一个初始值.这也就是说,你不显示的为字典的键赋初值python不会报错,看下实际例子. 比如你想计算频率 frequenc ...
- Python collections.defaultdict() 与 dict的使用和区别
看样子这个文档是难以看懂了.直接看示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import collections s = [('yellow', ...
- 一道算法题,引出collections.Counter的特殊用法
题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...
- python算法常用技巧与内置库
python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...
- 简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现。
简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现. 题目: Suppose a sorted array is rotated at som ...
- python算法题
python几道简单的算法题 最近看了python的语法,但是总感觉不知道怎么使用它,还是先来敲敲一些简单的程序吧. 1.题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都 ...
- Python: dict setdault函数与collections.defaultdict()的区别
setdault用法 >>>dd={'hy':1,'hx':2} >>>cc=dd.setdefault('hz',1) >>>cc 返 ...
- (转)Python 3 collections.defaultdict() 与 dict的使用和区别
原文:https://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html 在Python里面有一个模块collections,解释是数据类型 ...
- python collections module's defaultdict
Collections is a high-performance container datatypes. defaultdict objects class collections.default ...
随机推荐
- vue3 学习-初识体验-常见指令v-on和v-if
继续来体验一波数据驱动结合绑定方法的实践案例. 这里以最常见的反转字符串为栗子来体验面向数据编程. v-on 用来绑定事件的, 然后将方法名写在 methods 中即可. <!DOCTYPE h ...
- 剖析 Vue:最适合小白入手的前端框架
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 信息工程大学第五届超越杯程序设计竞赛(同步赛)A遗失的旋律
题目链接 :A-遗失的旋律_信息工程大学第五届超越杯程序设计竞赛(同步赛) (nowcoder.com) 本场比赛的数据都很水,导致很多题暴力都能过,(出题人背大锅, 说实话,如果数据不水, 这场感觉 ...
- SQL语句中exists和in有何区别
在SQL性能优化的时候,经常遇到是使用exists还是in提高效率的问题,这里结合之前写的两篇博客<MYSQL中in的用法>和<MYSQL中EXISTS的用法>,总结一下 ...
- NOIp2020复赛前日志
NOIp2020复赛前日志 组合数和卢卡斯定理 首先写的顺序别搞错了 从\(n\)个不同元素中取出\(m(m≤n)\)个元素的所有组合的个数 \[C_n^m=\binom nm=C(n,m)=\fra ...
- docker部署mysql5.7后登录时出现Access denied for user 'root'@'localhost' (using password: YES)的解决方法
1.先进去容器中安装vim工具 docker exec -it mysql bash apt-get update apt-get -y install vim 2.修改/etc/mysql/conf ...
- PINN做脆性材料裂纹扩展的损失函数设计
- PHP框架中用户认证和授权的实现方法与示例
本文由 ChatMoney团队出品 在Web开发中,用户认证(Authentication)和授权(Authorization)是构建安全应用程序的核心组件.用户认证是验证用户身份的过程,确保用户是他 ...
- LinkedList链表
LinkedList 他是继承的List 双向链表 每当我们new一个linklist对象的时候 LinkedList linkedList = new LinkedList(); 他会先创建一个Li ...
- 灵活、可用、高扩展,EasyMR 带来全新 Yarn 的队列管理功能及可视化配置
YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的资源调度器,主要用于资源管理和作业调度.YARN 自身具备队列管理功能,通过对 YARN 资源队 ...