【LeetCode百道热题】1.两数之和

一,题目描述

        给定一个整数数组nums和一个整数目标值target,请你在改数组中找出和为目标值target的那两个整数,并返回他们的数组下标。

        你可以假设每种输入只会对应一个答案,但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

二,问题解读

        在这个问题中,找到列表中任意两数(非连续)的值等于target就可以了,其中题目有确定给的答案,就是不会出现没有两数和等于target的情况,则不用异常检验。

三,解题思路

        首先肯定是暴力求解法,两个for循环遍历,但是容易超出程序实践限制。所以采用哈希表。

创建一个哈希表,便利这个列表,每次遍历的值用target减去该值,求得的结果如果在哈希表中不存咋的话,将该值和其索引一一对应保存到哈希表里。每次遍历求得的结果如果在哈希表里没有,则将该遍历值加入到哈希表里,如果有则直接输出这次遍历的索引和哈希表里与其值相等的值的索引,以数组的形式返回。在python中,字典dict有键和值一一对应,所以可以用字典简单表示次哈希表。

举个例子:num=[6,3,8,2,1],target=8,哈希表dict={}则

第一次遍历:8-6=2,将6存入dict={0:"6"};第二次遍历:8-3=5,将3存入哈希表里dict={0:"2",1:"3‘};第三次遍历:8-8=0,将8存入哈希表中dict={0:"2",1:"5",2:"8"};第三次遍历:8-2=6,6在哈希表中,则输出索引0和2的索引3,即(0,3)

四,代码分析

def twoSum(self, nums: List[int], target: int) -> List[int]:
    hashtable = dict()  # 创建一个空的字典,用于存储数字和它们的索引
    for i, num in enumerate(nums):  # 遍历 nums 列表,同时获得数字和它们的索引
        if target - num in hashtable:  # 检查是否存在一个数字,使得它与当前数字的和等于 target
            return [hashtable[target - num], i]  # 如果存在,返回这两个数字的索引
        hashtable[num] = i  # 否则,将当前数字及其索引存入字典
    return []  # 如果没有找到满足条件的数字,返回一个空列表

def twoSum(self, nums: List[int], target: int) -> List[int]:

  1. self:这是 Python 类中方法的第一个参数,代表对象自身。通常用于面向对象编程,但在该函数中并没有使用这个参数,因此可以忽略它。

  2. nums:这是一个参数,用于传递一个整数列表(List[int]),即一个包含整数的列表。

  3. target:这是一个参数,用于传递一个整数,表示目标和的值。

  4. -> List[int]:这是一个类型提示(type hint),用于指定该函数的返回类型。它表明该函数返回一个整数列表(List[int])。

函数enumerate()的用法

enumerate 是 Python 中的一个内置函数,用于同时获得迭代的元素和其对应的索引。它常用于 for 循环中,特别是当你需要在迭代时知道元素的位置时。

具体用法;

fruits = ['apple', 'banana', 'cherry']

for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")
Index 0: apple
Index 1: banana
Index 2: cherry
今日一笑:

        你要想处理好身边人的关系,你就要走进每个人的心理世界。然而,你这一生时间有限,有限到你没有时间走进他们的世界,所以关系复杂,你能做的特别有限,有限到你有一种幻觉,幻觉到岁月静好……你能做的就是少说话,甚至不说话。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/124460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

陈海波:OpenHarmony技术领先,产学研深度协同,生态蓬勃发展

11月4日,以“技术筑生态,智联赢未来”为主题的第二届OpenHarmony技术大会在北京隆重举办。本次大会由OpenAtom OpenHarmony(简称“OpenHarmony")项目群技术指导委员会(TSC)主办,由华为技术…

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX 手动添加、库添加方式

STM32-DSP库的使用 一.CMSIS-DSP1.1 DSP库简介1.2 支持的函数类别1.3 宏定义 二、操作2.1 STM32CubeMX 配置基本工程2.2 Lib库的方式实现(推荐)2.3 手动添加DSP文件(可以下载官方最新库,功能齐全) 三、MFCC测试DSP加速效果 为验证语音识别MFC…

搭建 Makefile+OpenOCD+CMSIS-DAP+Vscode arm-none-eabi-gcc 工程模板

STM32F407-GCC-Template Arm-none-eabi-gcc MakefileOpenOCDCMSIS-DAPVscode工程模板 一、本次环境搭建所用的软硬件 1)Windows or Linux (本文以Windows为主) 2)JLink、Daplink、Wch-Link烧录器 3)GNU Arm Embedded Toolchain交叉编译…

C++模板元模板实战书籍讲解第一章题目讲解

目录 第一题 C代码示例 第二题 C代码示例 第三题 3.1 使用std::integral_constant模板类 3.2 使用std::conditional结合std::is_same判断 总结 第四题 C代码示例 第五题 C代码示例 第六题 C代码示例 第七题 C代码示例 总结 第一题 对于元函数来说,…

贺天下功夫酱酒闪耀亮相2023佛山秋色系列活动

11月1日至5日,2023年广东非遗周暨佛山秋色巡游系列活动在佛山举行,以“品味佛山 秋醉岭南”为主题,好戏连台。贵州贺天下酒业独家赞助佛山祖庙秋祭、乡饮酒礼,还全面参与佛山秋色巡游、佛山非遗美食展、佛山非遗音乐会等多个活动&…

centos k8s安装dapr

文章目录 安装helm更新helm库初始化dapr高可用方式安装 卸载dapr验证k8s的dapr安装rocketmq总结 安装helm 三个包放到一个目录下 chmod x get ./get helm version更新helm库 helm repo add dapr https://dapr.github.io/helm-charts/ helm repo update helm search repo dapr …

2023年腾讯云双11活动入口在哪里?

2023年双11腾讯云推出了11.11大促优惠活动,下面给大家分享腾讯云双11活动入口、活动时间、活动详情,希望可以助力大家轻松上云! 一、腾讯云双11活动入口 活动地址:点此直达 二、腾讯云双11活动时间 腾讯云双11活动时间跨度很长…

el-form添加自定义校验规则校验el-input只能输入数字

0 效果 1 代码 {1,5}是用来限制小数点后几位的 addFormRules: {investAmount: [{ validator: checkInvestAmount, trigger: blur }], }, const checkInvestAmount (rule, value, callback) > {if (value ! && value ! null && value ! undefined) {if (/…

css进阶知识点速览

0前言 零基础部分的博客 1选择器进阶 1.1后代选择器 作用:根据html标签的嵌套关系,选择父元素后代中满足条件的元素 选择器语法:选择器1 选择器2 {css} 结果: 在选择器1所找到标签的后代中 注意: 后代包括&#xf…

osg之黑夜背景地月系显示

目录 效果 代码 效果 代码 /** * Lights test. This application is for testing the LightSource support in osgEarth. * 灯光测试。此应用程序用于测试osgEarth中的光源支持。 */ #include "stdafx.h" #include <osgViewer/Viewer> #include <osgEarth/N…

Vite创建React项目,另外一种更加简单的方法

在上一篇blog中一个一个安装依赖dependencies&#xff0c;有没有一步到位的方法呢&#xff0c;有! 参考《React 18 Design Patterns and Best Practices Design, build, and deploy production-ready web applications with React》4th 第一章倒数第二节Vite as a solution有个…

Mysql数据库 12.SQL语言 触发器

一、触发器&#xff08;操作日志表&#xff09; 1.介绍 不需要主动调用的一种储存过程&#xff0c;是一个能够完成特定过程&#xff0c;存储在数据库服务器上的SQL片段。 对当前表中数据增删改查的一种记录<日志表>&#xff0c;根据触发器自动执行&#xff0c;记录当前…

在mac上使用jmap -heap命令报错:Attaching to process ID 96530, please wait...

在mac上执行命令jmap -heap 96530 报错&#xff1a; Attaching to process ID 96530, please wait... ERROR: attach: task_for_pid(96530) failed: (os/kern) failure (5) Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Cant attach to the proc…

OpenHarmony 社区运营报告(2023 年 10 月)

● 截至 2023 年 10 月&#xff0c;OpenHarmony 社区共有 51 家共建单位&#xff0c;累计超过 6200 名贡献者产生 24.2 万多个 PR&#xff0c;2.3 万多个 Star&#xff0c;6.1 万多个 Fork&#xff0c;59 个 SIG。 ● OpenHarmony 4.0 版本如期而至&#xff0c;开发套件同步升级…

【经验模态分解】2.EMD的3个基本概念

/*** poject 经验模态分解及其衍生算法的研究及其在语音信号处理中的应用* file EMD的3个基本概念* author jUicE_g2R(qq:3406291309)* * language MATLAB/Python/C/C* EDA Base on matlabR2022b* editor Obsidian&#xff08;黑曜石笔记软件…

电脑msvcp110.dll丢失怎么办,msvcp110.dll缺失的详细修复步骤

在现代科技发展的时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的工具。然而&#xff0c;由于各种原因&#xff0c;电脑可能会出现一些问题&#xff0c;其中之一就是msvcp110.dll文件丢失。这个问题可能会导致一些应用程序无法正常运行&#xff0c;给我们的生活和工作…

linux生产者消费者模型

今天是一个与互斥锁和条件变量有关的一个模型&#xff0c;生产者消费者模型&#xff0c;为什么要用这个模型呢&#xff1f;其实这个模型我个人感觉的有点就是提高了效率&#xff0c;在多线程的情况下&#xff0c;提高了非常明显。并且解耦了生产者和消费者的关系。下面是一个这…

探索经典算法:贪心、分治、动态规划等

1.贪心算法 贪心算法是一种常见的算法范式&#xff0c;通常在解决最优化问题中使用。 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法范式。其核心思想是选择每一步的最佳解决方案&#xff0c;以期望达到最终的全局最优解。这种算法特点在于只考虑局部最优解&am…

Git设置显示中文

git config --global i18n.comitencoding utf-8 git config --global i18n.logoutputencoding utf-8 export LESSCHARSETutf-8

人声与背景音乐源分离

一.人声分离项目说明 人声分离是将音频录音分离为各个源的任务。该存储库是音乐源分离的 PyTorch 实现。用户可以通过安装此存储库将自己喜欢的歌曲分成不同的来源。用户还可以训练自己的源分离系统。该存储库还可用于训练语音增强、乐器分离和任何分离系统。 2.1 环境配置 …