LeetCode 1 两数之和
题目描述
链接:https://leetcode.cn/problems/two-sum/?envType=featured-list&envId=2ckc81c?envType=featured-list&envId=2ckc81c
难度:简单
给定一个整数数组 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]
提示:
2 <= nums.length <= 104-109 <= nums[i] <= 109-109 <= target <= 109- 只会存在一个有效答案
**进阶:**你可以想出一个时间复杂度小于 O(n2) 的算法吗?
解法
- 暴力解法
首先拿到数组第一个元素,然后一次向后遍历数组知道和满足要求的。如果第一个元素没找到,再拿到第二个元素,依次向后遍历找到和满足要求的。所以共有两层遍历。
python
class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i in range(len(nums)):for j in range(i + 1, len(nums)):if nums[i] + nums[j] == target:return [i, j]return []
复杂度分析
时间复杂度: O(n2)
空间复杂度:O(1)
- 哈希优化
上面解法时间复杂度较高,效率很慢。可使用哈希表来优化算法,以空间换时间。
首先创建一个哈希表,用来维护值数组的元素值和索引的对应关系。然后还是依次遍历数组,先从哈希表中找到与当前元素相加为指定和的索引,找到则返回索引,没找到的话维护值和索引到哈希表中,继续遍历。
python
class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:hashtable = dict()for i, num in enumerate(nums):if target - num in hashtable:return [hashtable[target - num], i]hashtable[num] = ireturn []
上面这中解法只要遍历一遍即可。
复杂度
时间复杂度: O(n)
空间复杂度:O(n)
相关文章:
LeetCode 1 两数之和
题目描述 链接:https://leetcode.cn/problems/two-sum/?envTypefeatured-list&envId2ckc81c?envTypefeatured-list&envId2ckc81c 难度:简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 targ…...
【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程
【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原…...
【1day】用友U8Cloud未授权访问漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
基于单片机智能汽车仪表设计系统
基于单片机的汽车智能仪表的设计 摘要:汽车的汽车系统。速度测量以及调速是我们这次的设计所要研究的对象,本次设计的基础核心的模块就是单片机,其应用的核心的控制单元就是stc89c52单片机,用到的测速模块是霍尔传感器,…...
java double 保留两位小数
在Java中,你可以使用 DecimalFormat 或 String.format 来保留 double 类型的数字两位小数。以下是两个例子: 使用 DecimalFormat import java.text.DecimalFormat;public class Main {public static void main(String[] args) {double number 123.456…...
计网第六章(应用层)(三)(文件传输协议FTP)
一、基本概念 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中即文件传送。 FTP就是因特网上使用得最广泛的文件传送协议。采用客户/服务器方式。 FTP提供交互式的访问,允许客户指明文件的类型和格式(如指明是否使用ASCII码…...
微信小程序canvas画布绘制base64图片并保存图片到相册中
WXML部分: <view class"img_" style"width: 100%;"><canvas type"2d" id"canvasId" style"width: 100%;height: 100%" ></canvas> <button style"margin: auto;width: 70%;marg…...
Hadoop3教程(八):MapReduce中的序列化概述
文章目录 (79)MR序列化概述(80)自定义序列化步骤(81)序列化案例需求分析(82)序列化案例代码参考文献 (79)MR序列化概述 什么是序列化,什么是反序…...
Flash-Attention
这是一篇硬核的优化Transformer的工作。众所周知,Transformer模型的计算量和储存复杂度是 O ( N 2 ) O(N^2) O(N2) 。尽管先前有了大量的优化工作,比如LongFormer、Sparse Transformer、Reformer等等,一定程度上减轻了Transformer的资源消耗…...
发布npm包质量分测试
查询质量分接口 https://registry.npmjs.org/-/v1/search?textcanvas-plus v0.0.1 quality 0.2987 新建文件夹 canvas-plus 执行命令 npm init 生成package.json {"name": "3r/canvas-plus","version": "0.0.1","descript…...
基于适应度相关优化的BP神经网络(分类应用) - 附代码
基于适应度相关优化的BP神经网络(分类应用) - 附代码 文章目录 基于适应度相关优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.适应度相关优化BP神经网络3.1 BP神经网络参数设置3.2 适应度相关算法应用 4…...
复杂网络 | 利用复杂网络预测城市空间流量
文章目录 效果一览文章概述导入必要的包读取时间序列数据,并使用日期做索引将时间序列进行可视化展示取一年的数据进行分析将数据分布进行可视化展示画移动平均图n 代表滑动窗口的大小向前差分法去趋势化线性回归方法去趋势化拟合模型的线性趋势将拟合得到趋势进行可视化detren…...
【1】c++11新特性(稳定性和兼容性)—>原始字面量
在C11中添加了定义原始字符串的字面量,定义方式为:R “xxx(原始字符串)xxx”其中()两边的字符串可以省略。原始字面量R可以直接表示字符串的实际含义,而不需要额外对字符串做转义或连接等操作。 编程过程中,…...
学习pytorch13 神经网络-搭建小实战Sequential的使用
神经网络-搭建小实战&Sequential的使用 官网模型结构根据模型结构和数据的输入shape,计算用在模型中的超参数coderunning log网络结构可视化 B站小土堆pytorch视频学习 官网 https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html#torch.nn.Se…...
TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
1. TCP发送接口:send() TCP发送数据的接口有send,write,sendmsg。在系统内核中这些函数有一个统一的入口,即sock_sendmsg()。由于TCP是可靠传输,所以对TCP的发送接口很容易产生误解,比如sn send(...); 错误…...
【Python、Qt】使用QItemDelegate实现单元格的富文本显示+复选框功能
主打一个 折磨 坑多 陪伴。代码为Python,C的就自己逐条语句慢慢改吧。 Python代码: import sys from types import MethodType from PyQt5.QtCore import Qt,QPoint,QSize,QRect,QEvent from PyQt5.QtGui import QStandardItemModel, QStandardItem,QTe…...
【JVM】JVM类加载机制
JVM类加载机制 加载双亲委派模型 验证准备解析初始化 JVM的类加载机制,就是把类,从硬盘加载到内存中 Java程序,最开始是一个Java文件,编译成.class文件,运行Java程序,JVM就会读取.class文件,把文件的内容,放到内存中,并且构造成.class类对象 加载 这里的加载是整个类加载的一…...
【面试经典150 | 区间】汇总区间
文章目录 Tag题目来源题目解读解题思路方法一:一次遍历复杂度分析 其他语言python3C 写在最后 Tag 【一次遍历】【数组】【字符串】 题目来源 228. 汇总区间 题目解读 给定一个无重复的升序数组 nums,需要将这个数组按照以下规则进行汇总࿱…...
主流接口测试框架对比
公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们。 需求 1、接口编写…...
LeetCode 150.逆波兰表达式求值
题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目解析 首先我们需要知道什么是逆波兰表达式,像我们平常遇到的都是中缀表达式,然而逆波兰确实后缀表达式,因此这个题目隐含的意思就是将一个后缀表达式转…...
一键安装器设计指南:从Shell脚本到自动化部署架构
1. 项目概述与核心价值最近在折腾一些自动化部署和脚本管理时,发现了一个挺有意思的项目:viomat7064/openclaw-installer。乍一看这个仓库名,你可能会联想到某种“爪子”工具,其实它本质上是一个针对特定开源软件或服务的一键式安…...
OnmyojiAutoScript:阴阳师全自动脚本终极指南,30+日常任务智能托管解放双手
OnmyojiAutoScript:阴阳师全自动脚本终极指南,30日常任务智能托管解放双手 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师作为一款深受玩家喜爱的…...
BK3633深度睡眠功耗实测:如何配置到1uA并保持定时器工作(避坑指南)
BK3633深度睡眠功耗优化实战:从理论到1uA的完整实现路径 在电池供电的物联网设备设计中,低功耗性能往往直接决定产品的市场竞争力。BK3633作为一款集成蓝牙5.2和专有2.4GHz协议的双模芯片,其规格书中标榜的"深度睡眠约1uA"参数尤其…...
别再让树莓派吃灰了!用腾讯云轻量服务器+frp,5分钟搞定远程SSH和VNC访问
树莓派远程访问实战:5分钟解锁SSH与VNC的轻量级方案 每次打开抽屉看到积灰的树莓派,总有种辜负了这片单板计算机潜力的愧疚感。其实只需一台基础配置的云服务器,就能让闲置设备变身24小时在线的开发工作站。本文将用最简步骤实现:…...
【2024最新版】ElevenLabs有声书生产流水线:1个API Key+3个Python脚本+2个FFmpeg指令=日更10小时高质量音频
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs有声书生产流水线全景概览 ElevenLabs 的有声书生产流水线是一套融合文本预处理、语音合成、音频后处理与元数据封装的端到端自动化系统,专为高质量、多语种、情感一致的有声内容…...
机器学习知识产权保护:从数据到模型的立体防御策略
1. 机器学习投资保护的核心挑战与思路 在上一篇文章中,我们探讨了机器学习(ML)项目从构思到部署过程中,知识产权(IP)保护的基本框架和初步策略。今天,我们深入到更具体、也更棘手的层面…...
Shoelace主题定制终极指南:掌握CSS变量覆盖与扩展技巧的10个秘诀
Shoelace主题定制终极指南:掌握CSS变量覆盖与扩展技巧的10个秘诀 【免费下载链接】shoelace Shoelace is now Web Awesome. Come see what’s new! 项目地址: https://gitcode.com/gh_mirrors/sh/shoelace Shoelace是一个功能强大的Web组件库,现已…...
智能重复文件清理:DupeGuru终极配置与实战指南
智能重复文件清理:DupeGuru终极配置与实战指南 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 在数字时代,重复文件如同无形的存储黑洞,悄无声息地吞噬着宝贵的磁盘空间。无论…...
NotebookLM API接入倒计时:GCP项目配额收紧前,必须完成的4步合规配置与审计清单
更多请点击: https://intelliparadigm.com 第一章:NotebookLM API开发接入 NotebookLM 是 Google 推出的面向研究与知识管理的 AI 笔记工具,其官方尚未开放公开 API,但通过逆向分析 Web 客户端通信及社区验证的认证流程ÿ…...
为OpenClaw智能体工作流配置Taotoken作为核心模型提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为核心模型提供商 OpenClaw是一个流行的智能体开发框架,它允许开发者构建和编排…...
