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

news2024/12/30 3:02:55

一,题目描述

        给定一个整数数组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
今日一笑:

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10 180天后怎么才能继续体验,自动保持续期,无需手动JH

环境: Win10 专业版 自制小程序 问题描述: Win10 180天后怎么才能继续体验,自动保持续期,无需手动JH 解决方案: 在执行本程序前需要以管理员身份运行!关闭杀毒软件,否则会失败,本方案只能在个人电脑测试体验, 只能用于学习测试体验 ,勿用与商业行为 1.先完全JH…

RFID电力资产全周期智能化管理应用解决方案

电力行业需求 国家电网提出了建设“泛在电力物联网”的计划,旨在利用现代信息技术和先进通信技术,实现电力系统各环节的万物互联,构建一个具备全面感知、高效处理和便捷灵活特征的智慧服务系统,其中,重点方向之一是围…

深眸科技聚焦3D机器视觉技术,从技术形态到应用前景实现详细分析

机器视觉技术的不断升级,使得对二维图像的处理逐渐扩展到了更复杂的三维领域,形成了3D机器视觉。3D机器视觉是机器视觉的重要应用领域之一,通过计算机能够在短时间内处理视觉传感器采集的图像信号,从而获得目标对象的三维信息。 …

2023云栖大会,Salesforce终敲开中国CRM市场

2015年被视为中国CRM SaaS元年,众多CRM SaaS创业公司和厂商在Salesforce的榜样作用下涌入了CRM SaaS赛道。在全球市场,Salesforce是CRM SaaS领域的领导厂商,连续多年占据了全球CRM SaaS第一大厂商地位。然而,Salesforce作为业务类…

22款奔驰GLS450升级HUD抬头显示简洁的展示

说起HUD抬头显示这个配置,最初是用在战斗机上的,它可以让战斗机驾驶员读取飞机的各种信息和状态,而无需移动头部,这样就能够有效的提高效率。但随着汽车技术的进步HUD这种配置也逐渐下放到民用车上。发展到今,车上的抬…

Day45 力扣动态规划 : 1143.最长公共子序列 |1035.不相交的线 | 53. 最大子序和

Day45 力扣动态规划 : 1143.最长公共子序列 |1035.不相交的线 | 53. 最大子序和 1143.最长公共子序列第一印象看完题解的思路实现中的困难感悟代码 1035.不相交的线第一印象感悟代码 53. 最大子序和第一印象dp递推公式初始化遍历顺序 实现中的困难感悟代…

面试分享 | 护网蓝队面试经验

关于蓝队面试经验 1.自我介绍能力 重要性 为什么将自我介绍能力放在第一位,实际上自我介绍才是面试中最重要的一点,因为护网面试并没有确定的题目,让面试官去提问 更多是的和面试官的一种 “交谈” ,面试的难易程度也自然就取决…

C++ —— map 和 multimap

一、map 1.介绍 1. map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元 素。 2. 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&am…

二十、泛型(5)

本章概要 边界通配符 编译器有多聪明逆变无界通配符捕获转换 边界 边界(bounds)在本章的前面进行了简要介绍。边界允许我们对泛型使用的参数类型施加约束。尽管这可以强制执行有关应用了泛型类型的规则,但潜在的更重要的效果是我们可以在…

获取AAC音频的ADTS固定头部信息

文章目录 前言一、AAC音频中的ADTS二、解析ADTS信息1.标准文档中介绍2.解析3.采样率索引和值4.下载AAC标准文档 前言 调试嵌入式设备中播放aac音频的过程中,了解了aac音频格式,记录在此,防止遗忘。 一、AAC音频中的ADTS ADTS(Audi…

代码随想录day2

目录 vscode 自定义代码模板Reference vscode 自定义代码模板 select User snippets from Settings on the bottom left corner. select a certain language for example: cpp create your own snippets 格式如下,防着写 第一行"cpp template",模板…

Kubernetes 中 RBAC、ServiceAccount 的区别和联系

Author:rab 目录 前言一、区别二、联系三、案例思考? 前言 首先,Kubernetes (K8s) RBAC (Role-Based Access Control) 和 ServiceAccount 都是 Kubernetes 中用于控制访问权限的两个重要概念,但是它们之间有一些区别和联系。 一…

chatgpt==对接API

来到首页 https://platform.openai.com/docs/overview quickstart turorial 生成API KEY https://platform.openai.com/api-keys 来体验下 setx OPENAI_API_KEY "your-api-key-here" echo %OPENAI_API_KEY% 编写PYTHON代码 pip install --upgrade openai from …

ChatGPT 报错“Sorry, you have been blocked…” 什么原因?如何解决?

原因: 频繁切换节点,使用免费代理,账号被锁定 解决办法: 遇到这种情况,请暂时先关闭代理(VPN),停止账号登陆,过段时间或隔天再试,防止账号被封。另外不建议使…

大模型在时间序列预测领域的最新15篇论文

最近在和大佬朋友们交流的时候,发现时间序列领域有一个很有潜力的新方向:大模型时间序列。 大模型可以处理不同类型的时间序列数据,例如文本、图像、音频等,也可以适应不同的时间序列数据的变化和异常情况,有助于提高…

TikTok shop美国小店适合哪些人做?附常见运营问题解答

一、Tiktok shop小店分类 大家都知道,美国小店可以分为5 种: 美国本土个人店: 最灵活,有扶持政策;美国法人企业店:要求高,有扶持政策;美国公司中国人占股店 (ACCU店) : 权重相对低&#xff0c…

文件改名:一次性解决文件名混乱,批量重命名技巧

在日常生活和工作中,我们经常会遇到文件名混乱的问题,例如文件名重复、格式不统一或者文件名错误等。这些问题不仅会给我们带来查找和使用上的困扰,还会影响我们的工作效率。为了解决这些问题,我们可以使用批量重命名技巧&#xf…

配置资源管理

Secret Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。 三种类型: kubernetes.io/service-accoun…

跨境电商中的二手宝藏:二手商品市场的崛起

在数字时代的崛起下,跨境电商已经成为了国际贸易的一个重要组成部分。它为人们提供了机会,能够轻松地购买来自世界各地的新商品。 然而,除了全新的产品,二手商品市场也在跨境电商中崭露头角,为买家和卖家提供全新的机…

第十五章,输入输出流代码

package 例题;import java.io.File;public class 例题1 {public static void main(String[] args) {//创建文件对象File file new File("D:\\Java15-1.docx");//判断,如果该文件存在。exists存在的意思if (file.exists()) {//删除//file.delete();//Syst…