LeetCode 题目:两个总和

LeetCode 题目:两个总和

在这里插入图片描述

描述:

编写一个函数,输入为一个整数数组nums和一个目标整数target,要求找到数组中两个数的和等于target,并返回这两个数的索引。

函数定义:

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

说明:

  • 假设对于每个输入,都存在一个解决方案。
  • 同一个元素不能被重复使用。
  • 可以以任意顺序返回答案。

示例:

# 示例 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]
解释: 因为 nums[1] + nums[2] == 6,所以返回 [1, 2]# 示例 3:
nums = [3, 3]
target = 6
输出: [0, 1]
解释: 因为 nums[0] + nums[1] == 6,所以返回 [0, 1]

实现:

def two_sum(nums: List[int], target: int) -> List[int]:# 创建一个字典来存储元素的索引num_indices = {}# 遍历数组for i, num in enumerate(nums):# 计算目标差值target_diff = target - num# 检查差值是否已经在字典中if target_diff in num_indices:# 如果存在,返回当前索引和差值的索引return [num_indices[target_diff], i]# 将当前元素和索引加入字典num_indices[num] = i# 如果没有找到解决方案,返回 Nonereturn None

使用示例:

# 使用示例 1
nums1 = [2, 7, 11, 15]
target1 = 9
print(two_sum(nums1, target1))  # 输出:[0, 1]# 使用示例 2
nums2 = [3, 2, 4]
target2 = 6
print(two_sum(nums2, target2))  # 输出:[1, 2]# 使用示例 3
nums3 = [3, 3]
target3 = 6
print(two_sum(nums3, target3))  # 输出:[0, 1]

上述代码定义了一个名为two_sum的函数,它接受一个整数列表nums和一个整数target作为输入,并通过字典来存储和查找能够相加得到目标值的两个数的索引。如果找到符合条件的两个数,函数返回它们的索引;如果不存在这样的两个数,则返回None。通过几个示例,展示了如何使用这个函数来解决实际问题。

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

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

相关文章

Java多线程开发——基础篇

目录 1.基本概念 2.创建线程方式 2.1直接建立线程 2.2实现Runnable接口 3.3实现Callable接口 3.4 了解Future接口 Future模式主要角色及其作用 3.5实例化FutureTask类 3.实现线程安全 3.1定义 3.2不安全原因 3.3解决方案 3.4volatile与synchronized区别 4.极端情…

Docker 学习笔记(三):Centos7 中 Docker 使用,镜像、容器,以及操作等常用命令小结

一、前言 记录时间 [2024-4-7] 前置文章: Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 Docker学习笔记(二):在Linux中部署Docker&#…

(Java)数据结构——排序(第一节)堆排序+PTA L2-012 关于堆的判断

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 堆排序(Heap Sort)概念 堆排序是一种基于堆数据结构的排序算法,其核心思想是将待排序的序列构建成一个最大堆(或最小…

从库延迟案例分析

背景介绍 近来一套业务系统,从库一直处于延迟状态,无法追上主库,导致业务风险较大。从资源上看,从库的CPU、IO、网络使用率较低,不存在服务器压力过高导致回放慢的情况;从库开启了并行回放;在从…

Python —— 简述

Houdini Python | 笔记合集 - 知乎 Houdini内置三大语言: 表达式,主要用于节点参数控制,可实现跨模块控制;vex,速度最快(比表达式和Python快一个数量级),非常适合密集型计算环境&…

【React】Ant Design社区扩展库之分割面板:react-resizable-panels

主角:react-resizable-panels 简介:来之Ant Design官方文档社区精选组件 1、效果 2、环境 react-resizable-panels: ^2.0.16next: 14.1.3react: ^18 3、安装 # npm npm install react-resizable-panels# yarn yarn add react-resizable-panels# pnpm …

Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)

一、前言 记录时间 [2024-4-6] 前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 在上文中,笔者进行了Docker概述,介绍其历史、优势、作用&am…

《三》按钮---PushButton和信号槽机制

QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮)、QRadioButton(单选按钮)、QToolButton&#x…

对LSTM的通俗易懂理解--可变权重

RNN的问题:长期依赖,即对短期的数据敏感,对比较远的长期数据不敏感,这是因为RNN隐藏状态权重在不同时刻是共享相同的,随着时间步的增加,梯度会指数级地衰减或者增长,导致梯度消失或者爆炸&#…

【黑马头条】-day06自媒体文章上下架-Kafka

文章目录 今日内容1 Kafka1.1 消息中间件对比1.2 kafka介绍1.3 kafka安装及配置1.4 kafka案例1.4.1 导入kafka客户端1.4.2 编写生产者消费者1.4.3 启动测试1.4.4 多消费者启动 1.5 kafka分区机制1.5.1 topic剖析 1.6 kafka高可用设计1.7 kafka生产者详解1.7.1 同步发送1.7.2 异…

配置vlan和vlan间路由、配置vlan的ip和vrrp、mstp和主次根

简单的通信实验 拓扑图: 1.配置vlan和链路聚合 Sw1 & sw2 undo info-center enable vlan batch 10 20 30 40 int eth-trunk 1 trunkport g 0/0/1 to 0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 30 40 int g0/0/3 port link-type trunk p…

Unity 布局 HorizontalLayoutGroup 多行 换行

演示Gif: 现象: 子元素宽度不同,超出父元素后不会换行 GridLayout则是固定宽度也不能用, 需求 水平排版的同时,超出父级后换行 代码: 催更就展示[狗头]

Linux:Redis7.2.4的简单在线部署(1)

注意:我写的这个文章是以最快速的办法去搭建一个redis的基础环境,作用是为了做实验简单的练习,如果你想搭建一个相对稳定的redis去使用,可以看我下面这个文章 Linux:Redis7.2.4的源码包部署(2)-…

CSS 基础:设置背景的 5 个属性及简写 background 注意点

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集 263篇…

给你的Qt软件加个授权

写在前面 环境: Win11 64位 VS2019 Qt5.15.2 核心思路: 将授权相关信息加密保存到License.txt中,软件运行时获取并解密授权信息,判断是否在限制期限内即可。 加解密部分使用第三方openssl库进行,因此需要手动在…

家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总

由于我是在虚拟机中安装的security onion,在此过程中,遇到很多的网络访问不通的问题,通过该文章把网络连接问题做一下梳理。如果直接把securityonion 安装在物理机上,网络问题则会少很多。 NAT无法访问虚拟机 security onion虚拟…

多目标跟踪 | 基于anchor-free目标检测+ReID的实时一阶多类多目标跟踪算法实现

项目应用场景 面向多目标检测跟踪场景,项目采用 anchor-free 目标检测ReID 的实时一阶段多类多目标跟踪算法实现,效果嘎嘎好。 项目效果 项目细节 > 具体参见项目 README.md (1) 类别支持 1~10 object classes are what we need non-interest-…

SpringCloud学习(9)-GateWay网关-自定义拦截器

GateWay Filter详细配置说明 gateway Filter官网:Spring Cloud Gateway 作用: 请求鉴权异常处理记录接口调用时长统计 过滤器类别 全局默认过滤器:官网:Spring Cloud Gateway,出厂默认已有的,直接用,作…

Qt栅格布局的示例

QGridLayout * layoutnew QGridLayout;for(int i0;i<10;i){for(int j0;j<6;j){QLabel *labelnew QLabel(this);label->setText(QString("%1行%2列").arg(i).arg(j));layout->addWidget(label,i,j);}}ui->widget->setLayout(layout); 这样写程序会崩…

【vue】v-bind动态属性绑定

v-bind 简写:value <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…