首页 > 其他分享 >Leecode 1. 两数之和 Two Sum

Leecode 1. 两数之和 Two Sum

时间:2023-10-25 15:15:10浏览次数:35  
标签:map target nums int Sum 元素 Leecode 数组 两数

给定一个整数数组 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]

分析:

Leecode第一题,难度为简单。因为是第一题,也就是知道的人最多,出现的频率可能最高。

同样难度为简单,如果不知道,评价会降很多,实际上没见过大概率也没啥思路。

然后来看问题,从数组里检索2个和为给定数值的元素,返回元素的下标。

所以,最直观的就是,用第一个和其他的挨个试,符合返回,都不符合,换第2个,和后面的接着试。

某种原因下不太好,时间复杂度:O(N^2)。随着元素的增加,对比的次数增加太多了。

然后另一种思路就是,每个元素和目标值的差值就是要找的元素,然后把每个元素和索引都存一下,

这样遍历一遍就可以了。但是就可以要用一点内存空间来存这些数,但是这个空间增长是线性的,而不是以次方的方式增加。

所以来看实现。

class Solution {
    public int[] twoSum(int[] nums, int target) {
            HashMap<Integer,Integer> map=new HashMap<>();
            for(int i=0;i < nums.length;i++){
                int otherNum=target-nums[i];
                if (map.containsKey(otherNum)){
                    return new int[]{map.get(otherNum),i};
                }
                map.put(nums[i],i);
            }
            return new int[]{};
    }
}

可能难点一个在于leecode写代码没有自动补全,另一个是没有想到map能把所有的元素先存一下,再操作。

实际上,这种思路,很朴素,就真的很朴素,把需要的数存一下再操作,哈哈。

 

标签:map,target,nums,int,Sum,元素,Leecode,数组,两数
From: https://www.cnblogs.com/ghostSynth/p/17787238.html

相关文章

  • LeetCode 1.两数之和
    题目描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例第一次提交的代码i......
  • 除了爱好者,面试和面别人的情况,估计都懒得看leecode
    leecode这个就是一种通用的东西,可以用来交流,也可以用来面试时候考验或者恶心一下被面的人哈哈。主要是用一些传统的通用概念和数据结构的一些使用,比如数组,链表,字符串,树,和一些解问题的思路。如果你没看过,在一些面试情况下,10分钟内现想,能运行成功概率很低。就算会弄,......
  • PAT 甲级【1007 Maximum Subsequence Sum】
    本题是考察动态规划与java的快速输入:max[i]表示第i个结尾的最大的连续子串和。bbegin[i]表示第[begin[i],i]为最大和的开始位置超时代码:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassMain{@Suppres......
  • OMNeT++安装教程,OMNeT++/SUMO/Veins/INET安装包下载以及它们的联合仿真配置
    一、版本匹配以及下载地址Omnetpp5.6.2,Sumo1.17.0/1.13.0,Veins5.0,以及Inet4.2.5的百度云下载地址:(如果需要其他版本,请在下面提供的官网地址下载。)链接:https://pan.baidu.com/s/1iPuCyYYqnm1R73rdUovn2A?pwd=x29y提取码:x29y操作系统:Windows10OMNeT++:Omnetpp5.6.2  下载地址......
  • 安装Image Color Summarizer
    安装网页网址: http://mkweb.bcgsc.ca/color-summarizer/?download在网址栏输入URL: http://mkweb.bcgsc.ca/color-summarizer/download/colorsummarizer-0.80-win.zip下载后如图 在搜索栏输入cmd调出命令管理器输入命令  -help会得到用法帮助bin\colorsummarize......
  • 1.两数之和
    目录题目法一、暴力法法二、哈希表题目给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序......
  • Makefile knowledge summarization
    WildcardThewildcardinmakefileissimilarwithmacroinC/C++,itisn'tsimilarwithwildcardinlinuxshell,soitdoesn'texpendautomatically.object1=*.c//*.cobject2=$(wildcard*.cpp)//main.cppt1.cppt2.cppAutomaticallygene......
  • umicv cv-summary1-全连接神经网络模块化实现
    全连接神经网络模块化实现Linear与Relu单层实现LossLayer实现多层神经网络不同梯度下降方法Dropout层今天这篇博文针对Assignment3的全连接网络作业,对前面学习的内容进行一些总结在前面的作业中我们建立神经网络的操作比较简单,也不具有模块化的特征,在A3作业中,引导我们......
  • 第二十八篇——一通达信板块函数INSUM、BLOCKSETNUM简介以及应用(从零起步编写通达信指
    有人问:统计指数成分股的收盘价高于20日均线的数量占比(0%~100%),如何编写成副图指标?这种指标公式属于代码不多,难度不小的类型。如果平时编写板块方面的指标比较少,相关板块函数不常用,那需要花点时间研究。 一、所需函数1、STKNAME含义:获取品种名称 2、HYBLOCK......
  • 【dp】【竞赛图的性质】ARC163D Sum of SCC 题解
    ARC163D发现这个竞赛图一定能被分为两个集合\(A\),\(B\)。满足\(\forallu\inA,v\inB\),均有\(u\tov\inE\)。答案就是划分这两个集合的方案数。证明:首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号大的强连通分量。不妨令竞赛图\(G\)......