lc1.两数之和

news2024/12/26 12:04:07

暴力解法:两个for循环,寻找和为target的两个数的索引

时间复杂度:O(n2)

空间复杂度:O(1)

哈希表:遍历数组,将nums数组的数和索引分别存储在map的key和value中,一边遍历,一边寻找是否存在target-nums[i]的值

时间复杂度:O(n)

空间复杂度:O(n)

为什么哈希表的方法可以不用遍历两遍?

因为map集合可以直接从key获取value值,也就是直接获取索引;但数组不能够直接获取,只能通过遍历的方式

import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

public class TwoSum {
    @Test
    public void test() {
        int[] nums = new int[]{2, 7, 11, 15};
        for (int i : twoSum(nums, 9)) {
            System.out.print(i + " ");
        }
    }


    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
        for (int i = 0; i < nums.length; ++i) {
            if (hashtable.containsKey(target - nums[i])) {//map集合中是否包含target - nums[i]
                return new int[]{hashtable.get(target - nums[i]), i};//如果包含,返回target - nums[i]的value值/索引和i
            }
            hashtable.put(nums[i], i);//将nums数组的数和索引分别存储在map的key和value中
        }
        return null;
    }

}

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

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

相关文章

多语言多用户购物网站--海外仓进出口贸易平台开发

搭建一个多语言多用户购物网站需要具备一定的技术和资源&#xff0c;下面是一个大致的步骤&#xff1a; 1.确定需求&#xff1a;首先确定购物网站的功能需求&#xff0c;包括商品展示、购物车、订单管理、支付方式、物流管理等。同时还需要考虑到海外仓进出口贸易的特点&#…

如何使用Pycharm 快速搭建 Django 项目 (分享详细图文教程)

1. 准备工作 在开始创建Django项目之前&#xff0c;需要先确保已经安装了Python和Pycharm。并且python中已经安装好了Django依赖。 1安装python&#xff08;这里我安装使用的是python3.11.4稳定版本&#xff09; 官网下载太慢了这里直接贴网盘下载连接了&#xff0c;一起贴出py…

java版工程项目管理系统源码+系统管理+系统设置+项目管理+合同管理+二次开发em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部…

解决vue3中不能使用vue-simple-uploader

vue-simple-uploader本身是基于vue2的&#xff0c;直接npm i vue-simple-uploader -S下载下来版本的是0.7.6。在vue3中无法使用会报错。 解决&#xff1a;使用next安装接下来要发布的版本就会下载1.0.1版本&#xff0c;即可使用vue3 npm i vue-simple-uploadernext -S 注意&…

基于Echarts的大数据可视化模板:智慧物流管理

目录 引言物流管理的重要性大数据可视化在解决物流管理挑战中的作用智慧物流概述定义智慧物流的概念和特点智慧物流的关键技术和平台风险管理和预测:交通拥堵情况和风险预警Echarts与大数据可视化Echarts库以及其在大数据可视化领域的应用优势开发过程和所选设计方案模板如何满…

企业计算机服务器中了locked勒索病毒怎么办,如何预防勒索病毒攻击

计算机服务器是企业的关键信息基础设备&#xff0c;随着计算机技术的不断发展&#xff0c;企业的计算机服务器也成为了众多勒索者的攻击目标&#xff0c;勒索病毒成为当下计算机服务器的主要攻击目标。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器被locked…

linux程序保护机制gcc编译选项

预备知识&#xff1a; 计算机内存的结构通常包括以下几个主要部分&#xff1a; 1.代码段(Code Segment)&#xff1a;也称为文本段&#xff0c;存储程序的可执行指令。代码段是被标记为可执行的&#xff0c;程序从代码段中获取指令并执行。 2.数据段(Data Segment)&#xff1a…

聚焦智慧医疗-RK3566智能主板助力POCT领域

POCT又称即时检验&#xff0c;是IVD(体外诊断)行业的一个细分领域&#xff0c;是指在采样现场即刻进行的快速诊断&#xff0c;省去了标本在实验室检验的复杂处&#xff0c;利用便携式分析仪器及配套试剂快速得到检测结果的一种检测方式。常见的POCT设备有生化分析仪、免疫分析仪…

Netty的ByteToMessageDecoder分析

说明 io.netty.handler.codec.ByteToMessageDecoder是一个解码器&#xff0c;从字节数据转换为其它类型的数据。ByteToMessageDecoder内部有一个累加器&#xff0c;将收到的字节读出来累积到一个ByteBuf中。ByteToMessageDecoder是个抽象类型&#xff0c;其中抽象函数decode(C…

Adobe全家桶-Prelude 2022安装教程

软件介绍 Adobe Prelude简称Pl&#xff0c;是Adobe出品的一款专业级别的视频编辑软件。Adobe Prelude软件将卓越的性能、优美的改进用户界面和许多奇妙的创意功能结合在一起&#xff0c;包括用于动态时间轴裁切、扩展的多机编辑、调整图层等。可用于结构化或简化视频制作工作流…

侯捷 C++面向对象编程笔记——8 静态 模板 namespace

8.1 static 对于非静态的函数和数据&#xff1a; 非静态的成员函数通过this指针来处理不同的数据&#xff08;一份函数—>多个对象&#xff09; 对于静态的函数和数据&#xff1a; 静态函数没有this&#xff0c;不能处理一般的数据&#xff0c;只能处理静态的数据 例1&a…

webshell免杀项目-Webshell_Generate(四)

用于生成各类免杀webshell 该工具没什么技术含量&#xff0c;学了一点javafx&#xff0c;使用jdk8开发出了几个简单功能用来管理webshell。页面比较low。 工具整合并改写了各类webshell&#xff0c;支持各个语言的cmd、蚁剑、冰蝎、哥斯拉&#xff0c;又添加了实际中应用到的一…

【Opencv入门到项目实战】(七):图像轮廓检测

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 引言1.​轮廓检测2.轮廓特征3.轮廓近似4.外接矩形总结 引言 这一篇文章我们来讨论图像轮廓相关的知识点&#xff0c;什么叫做轮廓&#xff0c;从定义上来说它是指图像中连续的曲线或边界&#xff0c;表示了图像中目标的…

h5高德地图定位与Audio标签冲突

看到此文说明你也遇见此问题了&#xff0c;在ios设备使用(高德地图、百度地图)定位&#xff0c;如果在页面中有audio标签则会出现定位失败要么就是音频无法播放&#xff0c;此问题已和官方证实 是冲突问题&#xff0c;暂无解决方案。 因为高德地图也是基于原生定位开发的&#…

51单片机学习--红外遥控(外部中断)

需要利用下面这个红外接收头&#xff0c;OUT口会发出红外信号对应的高低电平&#xff0c;由于发送的速度很快&#xff0c;所以需要把OUT引脚接在外部中断引脚上&#xff0c;当OUT一旦产生下降沿&#xff0c;马上进中断&#xff0c;这样响应会更及时。 外部中断引脚位于P3_2和P…

chatGPT能力培训,客户最关注的99个方向

前言&#xff1a; chatGPT的主要应用&#xff0c;包括文本生成、图像生成和图文关联三大核心方向&#xff1a; 用户的在实际的工作和学习过程中&#xff0c;最关心的内容&#xff0c;可以按照上述类别进行划分&#xff0c;我们总结了&#xff0c;相关的插头GPT能力培训的相关主…

工程管理系统简介 工程管理系统源码 java工程管理系统 工程管理系统功能设计em

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff…

这些工具让音频文件格式转换更简单

小华是一位音乐爱好者&#xff0c;他平时喜欢下载并播放一些流行音乐。在这个过程中&#xff0c;他发现从不同平台上下载下来的音乐格式并不一样&#xff0c;而不同的播放平台也支持不同的音频格式。这令他感到烦恼&#xff0c;并希望通过一些音频格式转换器来帮助他解决音频格…

2023牛客暑期多校训练营7 I-We Love Strings (分块)

文章目录 题目大意题解参考代码 题目大意 题解 这题给定的 n n n 大小和 s i s_i si​ 的总长度有玄机。 我们发现&#xff1a; 400 2 0 2 40020^2 400202&#xff0c;对于每一组数据 n n n 的个数每增加一个&#xff0c; s i s_i si​ 的平均值就会减小。 处理相同的 l…

【MySQL】表中的一条数据在磁盘上是如何存放的?

文章目录 1 InnoDB行格式2 COMPACT行格式2.1 记录的额外信息2.2 记录的真实数据 3 Dynamic & Compressed4 VarChar(n)中n的最大取值&#xff1f; 1 InnoDB行格式 不同的存储引擎一般是为实现不同的特性来开发的&#xff0c;真实数据在不同存储引擎中的存放格式一般是不同的…