想使用哈希表存元素个数想起来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的更多相关文章

  1. python collections defaultdict

    class_counts  = defaultdict(int) 一.关于defaultdict 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collect ...

  2. Python collections.defaultdict 笔记

    其实defaultdict 就是一个字典,只不过python自动的为它的键赋了一个初始值.这也就是说,你不显示的为字典的键赋初值python不会报错,看下实际例子. 比如你想计算频率 frequenc ...

  3. 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', ...

  4. 一道算法题,引出collections.Counter的特殊用法

    题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...

  5. python算法常用技巧与内置库

    python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...

  6. 简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现。

    简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现. 题目: Suppose a sorted array is rotated at som ...

  7. python算法题

    python几道简单的算法题   最近看了python的语法,但是总感觉不知道怎么使用它,还是先来敲敲一些简单的程序吧. 1.题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都 ...

  8. Python: dict setdault函数与collections.defaultdict()的区别

    setdault用法 >>>dd={'hy':1,'hx':2} >>>cc=dd.setdefault('hz',1) >>>cc      返 ...

  9. (转)Python 3 collections.defaultdict() 与 dict的使用和区别

    原文:https://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html 在Python里面有一个模块collections,解释是数据类型 ...

  10. python collections module's defaultdict

    Collections is a high-performance container datatypes. defaultdict objects class collections.default ...

随机推荐

  1. vue3 学习-初识体验-常见指令v-on和v-if

    继续来体验一波数据驱动结合绑定方法的实践案例. 这里以最常见的反转字符串为栗子来体验面向数据编程. v-on 用来绑定事件的, 然后将方法名写在 methods 中即可. <!DOCTYPE h ...

  2. 剖析 Vue:最适合小白入手的前端框架

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  3. 信息工程大学第五届超越杯程序设计竞赛(同步赛)A遗失的旋律

    题目链接 :A-遗失的旋律_信息工程大学第五届超越杯程序设计竞赛(同步赛) (nowcoder.com) 本场比赛的数据都很水,导致很多题暴力都能过,(出题人背大锅, 说实话,如果数据不水, 这场感觉 ...

  4. SQL语句中exists和in有何区别

       在SQL性能优化的时候,经常遇到是使用exists还是in提高效率的问题,这里结合之前写的两篇博客<MYSQL中in的用法>和<MYSQL中EXISTS的用法>,总结一下 ...

  5. NOIp2020复赛前日志

    NOIp2020复赛前日志 组合数和卢卡斯定理 首先写的顺序别搞错了 从\(n\)个不同元素中取出\(m(m≤n)\)个元素的所有组合的个数 \[C_n^m=\binom nm=C(n,m)=\fra ...

  6. 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 ...

  7. PINN做脆性材料裂纹扩展的损失函数设计

  8. PHP框架中用户认证和授权的实现方法与示例

    本文由 ChatMoney团队出品 在Web开发中,用户认证(Authentication)和授权(Authorization)是构建安全应用程序的核心组件.用户认证是验证用户身份的过程,确保用户是他 ...

  9. LinkedList链表

    LinkedList 他是继承的List 双向链表 每当我们new一个linklist对象的时候 LinkedList linkedList = new LinkedList(); 他会先创建一个Li ...

  10. 灵活、可用、高扩展,EasyMR 带来全新 Yarn 的队列管理功能及可视化配置

    YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的资源调度器,主要用于资源管理和作业调度.YARN 自身具备队列管理功能,通过对 YARN 资源队 ...