代码随想录算法训练营第三天

2023-10-27

今天是算法训练营的第三天;
写了454. 四数相加 II这道题目
力扣链接
代码随想录链接

代码如下:

class Solution:
    def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:
        # 使用字典存储nums1和nums2中的元素及其和
        hashmap = dict()
        for n1 in nums1:
            for n2 in nums2:
                # if n1 + n2 in hashmap:
                #     hashmap[n1+n2] += 1
                # else:
                #     hashmap[n1+n2] = 1
                # 上面的四行代码可以改写为下面的代码,同一个意思
                hashmap[n1+n2] = hashmap.get(n1 + n2, 0) + 1
                 

        # 如果 -(n3 + n4)存在于hashmap,那么就将结果++
        count = 0
        for n3 in nums3:
            for n4 in nums4:
                key1 = -(n3+n4)
                if key1 in hashmap: # 如果hashmap这个字典中的键,和key1相对应的话,那就说明可以相加为0
                    count += hashmap[key1]

        return count

通过Python字典这个数据结构的键值对的形式,来解题。

拓展:
Python中的dict和C里面的map相同点和不同点总结

在Python和C++中,dict和map是用于存储键值对的数据结构,但在语法和实现上存在一些差异。下面是dict和C++中的map的相同点和不同点,并附带示例说明:

相同点:

  1. 存储键值对:dict和map都用于存储键值对,通过键来访问对应的值。

  2. 动态性:它们都支持动态地添加、删除和修改键值对。

不同点:

  1. 语言和语法:dict是Python的内置数据类型,在Python中直接使用,而map是C++标准库中的容器,需要包含相应的头文件和使用命名空间。

  2. 内存管理:Python的dict使用动态内存分配和垃圾回收机制,不需要手动管理内存。而C++中的map使用动态内存分配和自动析构,也可以手动管理内存。

  3. 键和值的类型:Python的dict可以存储各种类型的键和值,包括不同的数据类型和对象。C++中的map通常需要明确指定键和值的类型,可以使用自定义类型作为键和值。

下面两个示例分别展示了使用dict和map存储键值对,并进行一些操作。在Python示例中,我们创建了一个字典person,包含了姓名、年龄和职业等键值对。然后,我们通过访问键来获取对应的值,使用print函数输出结果。接着,我们添加了一个新的键值对、修改了一个值,并删除了一个键值对。最后,使用pprint.pprint函数打印出字典的内容。

在C++示例中,我们使用了std::map容器来存储键值对。我们添加了两个键值对,修改了一个值,并删除了一个键值对。最后,通过for循环遍历map,打印出键值对的内容。

需要注意的是,C++中的示例使用了C++标准库中的map容器,实际使用中还可以使用其他容器,如unordered_map等。这里的示例只是为了演示与Python中dict的比较。

Python中的dict示例:

# 导入模块
import pprint

# 创建字典
person = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

# 访问字典中的值
print(person['name'])  # 输出: John

# 添加新的键值对
person['occupation'] = 'Engineer'

# 修改值
person['age'] = 35

# 删除键值对
del person['city']

# 遍历字典
pprint.pprint(person)

C++中的map示例:

#include <iostream>
#include <map>

int main() {
    // 创建map
    std::map<std::string, int> person;

    // 添加键值对
    person["name"] = 30;
    person["age"] = 30;

    // 修改值
    person["age"] = 35;

    // 删除键值对
    person.erase("name");

    // 遍历map
    for (const auto& kv : person) {
        std::cout << kv.first << ": " << kv.second << std::endl;
    }

    return 0;
}```
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码随想录算法训练营第三天 的相关文章

  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 为什么我不能导入 geopandas?

    我唯一的代码行是 import geopandas 它给了我错误 OSError Could not find libspatialindex c library file 以前有人遇到过这个吗 我的脚本运行得很好 直到出现此错误 请注意
  • Python 中的六边形自组织映射

    我在寻找六边形 自组织映射 http en wikipedia org wiki Self organizing map在Python上 准备好模块 如果存在的话 绘制六边形单元格的方法 将六边形单元作为数组或其他方式使用的算法 About
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • Python3 查找 2 个列表中有多少个差异才能相等

    假设我们有 2 个列表 always具有相同的长度和always包含字符串 list1 sot sot ts gg gg gg list2 gg gg gg gg gg sot 我们需要找到 其中有多少项list2应该改变 以便它等于lis
  • 当x轴不连续时如何删除冗余日期时间 pandas DatetimeIndex

    我想绘制一个 pandas 系列 其索引是无数的 DatatimeIndex 我的代码如下 import matplotlib dates as mdates index pd DatetimeIndex 2000 01 01 00 00
  • 如何使用 openpyxl 对工作簿中的 Excel 工作表/选项卡进行排序

    我需要按字母数字对工作簿中的选项卡 工作表进行排序 我在用openpyxl https openpyxl readthedocs io en default 操作工作表 您可以尝试排序workbook sheets list workboo
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 我可以使用 dask 创建 multivariate_normal 矩阵吗?

    有点相关这个帖子 https stackoverflow com questions 52337612 random multivariate normal on a dask array 我正在尝试复制multivariate norma
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • FastText - 由于 C++ 扩展未能分配内存,无法加载 model.bin

    我正在尝试使用 FastText Python APIhttps pypi python org pypi fasttext https pypi python org pypi fasttext虽然 据我所知 此 API 无法加载较新的
  • 在 pip.conf 中指定多个可信主机

    这是我尝试在我的中设置的 etc pip conf global trusted host pypi org files pythonhosted org 但是 它无法正常工作 参考 https pip pypa io en stable
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • Google App Engine 中的自定义身份验证

    有谁知道或知道我可以在哪里学习如何使用 Python 和 Google App Engine 创建自定义身份验证流程 我不想使用 Google 帐户进行身份验证 并且希望能够创建自己的用户 如果不是专门针对 Google App Engin
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30

随机推荐

  • socket error总结

    Socket error 0 Directly send error Socket error 10004 Interrupted function call Socket error 10013 Permission denied Soc
  • 运维实践

    欢迎关注 WeiyiGeek 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 全栈实践 再到 放弃学习 涉及 网络安全运维 应用开发 物联网IOT 学习路径 个人感悟 等知识 花开堪折直须折 莫待无花空折枝 作者主页 ht
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 编译XT720 gingerbread

    在android根目录下执行 build envsetup sh 然后执行lunch 选择你要的套餐 然后直接make 编译中有3处错误 1 packages apps CMStats Android mk中 把LOCAL STATIC J
  • 【华为OD统一考试B卷

    文章目录 题目描述 输入描述 输出描述 用例 C java javascript python 题目描述 对一个数据a进行分类 分类方法为 此数据a 四个字节大小 的四个字节相加对一个给定的值b 取模 如果得到的结果小于一个给定的值c 则数
  • 猿创征文

    猿创征文 国产数据库实战之TiDB 数据库快速入门 一 系统检查 1 检查系统版本 2 查看本地IP地址 3 TiDB集群介绍 二 快速部署本地测试集群 1 安装 TiUP工具 2 声明全局环境变量 3 快速部署TiDB 集群 三 连接 T
  • 元宇宙概念火热,多家企业推出NFT

    摘要 产业动态 Facebook 计划未来五年在欧洲招聘 1 万人建立元宇宙 新加坡新跃社科大学成立元宇宙实验室 淘宝APP上线 天猫双11首届元宇宙艺术展 格拉斯哥大学与VB Hyperledger合作启动Moshan区块链实验室 政策相
  • day39 动态规划

    62 不同路径 机器人每次只可以向右 或者 向下 每次向右走 dp i 0 1 dp 0 j 1 dp i j dp i 1 j dp i j 1 i的范围 0 m 1 j的范围 0 n 1 63 不同路径 II 解法同上 需要考虑障碍物
  • Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this doc...

    网上收集到的相关解决办法 1st Start debugging Now select Debug gt Windows gt Modules In the modules window taht now appears check wha
  • c语言中断程序运行,C语言实现 "软中断" 程序小结

    参考网友帖子改写 呵呵 对于系统级语言设计之一的中断程序设计包括软中断和硬中断 后者设计到硬件端口的读写操作等等 应该用汇编实现比较好 而前者用C实现就要方便得多的了 对于软中断程序应该有3部分组成 中断程序的编写 安装和使用 由于我们可以
  • 【从零开始学习C++

    目录 前言 委托构造函数 类内初始化 空指针 枚举类 总结 前言 C 的学习难度大 内容繁多 因此我们要及时掌握C 的各种特性 因此我们更新本篇文章 向大家介绍C 的新增特性 委托构造函数 委托构造函数是指一个类的构造函数调用另一个类的构造
  • 我的2016--"狗血"

    偶然看到了CSDN的 我的2016 主题征文活动 突然感慨一番 今年又快结束了 而我这一年的经历 可以浓缩为两个字 狗血 然而 我能用上如此不羁的词汇 并未能掩盖我木讷的内心 这才真的是狗血 感觉像在梦游 走了好远的路 一睁开眼睛却还在原地
  • 【100%通过率 】【华为OD机试 c++/java/python】任务总执行时长【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 任务总执行时长 任务编排服务负责对任务进行组合调度 参与编排的任务有两种类型 其中一种执行时长为taskA 另一种执行时长为taskB 任务一旦
  • 2023华为产品测评官-开发者之声

    2023华为产品测评官 开发者之声 活动激发了众多开发者和技术爱好者的热情 他们纷纷递交了精心编写的产品测评报告 活动社群充满活力 参与者们热衷于交流讨论 互相帮助解决问题 一起探索云技术的无限可能 在此次活动中 华为云CodeArts获得
  • 怎么用计算机算ess tss,"ESS、RSS、TSS"分别表示什么?

    回归平方和 ESS 残差平方和 RSS 总体平方和 TSS 1 回归平方和 是反映自变量与因变量之间的相关程度的偏差平方和 用回归方程或回归线来描述变量之间的统计关系时 实验值yi与按回归线预测的值Yi并不一定完全一致 2 残差平方和是在线
  • ChatGPT 再遭禁用

    近日 三星电子宣布禁止员工使用流行的生成式AI工具 原因在于4月初三星内部发生的三起涉及 ChatGPT 误用造成的数据泄露事件 报道称 三星半导体设备测量资料 产品良率等内容或已被存入ChatGPT学习资料库中 去年11月上线以来 Cha
  • 超高清

    海思 HDR HDR行业面临巨大挑战 01 标准不统一 终端呈现效果参差不齐 HDR多种技术标准共存 缺少终端侧技术实现方案 标准间兼容性较差 不能覆盖主流终端的适配 认证及测试过程 导致终端呈现效果差距大 02 生态碎片化 部分技术方案专
  • Android系统开发之修改Captive Potal Service(消灭感叹号)

    本文原作者 长鸣鸟 未经同意 转载不带名的严重鄙视 谷歌在Android5 0之后的版本加入了CaptivePotalLogin服务 本服务的功能是检查网络连接互联网情况 主要针对于Wi Fi 不让Android设备自动连接那些不能联网的无
  • Visio 2007/2010 左侧"形状"窗口管理

    Visio 2007 2010 左侧 形状 窗口管理 Visio 打开后 通常窗口左侧会有一个 形状 面板 我们可以方便地从中选择需要的形状 有时为了获得更大的版面空间或者不小心关闭了形状面板 怎么把它重新调出来 我们可以从 视图 中把它找
  • 代码随想录算法训练营第三天

    今天是算法训练营的第三天 写了454 四数相加 II这道题目 力扣链接 代码随想录链接 代码如下 class Solution def fourSumCount self nums1 List int nums2 List int nums