首页 > 其他分享 >BM50 两数之和(利用hashmap特性以提高效率实现目标)

BM50 两数之和(利用hashmap特性以提高效率实现目标)

时间:2022-09-21 16:59:29浏览次数:63  
标签:map 下标 hashmap leq BM50 int result 两数 10

描述

给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。 (注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)   数据范围:2\leq len(numbers) \leq 10^52≤len(numbers)≤105,-10 \leq numbers_i \leq 10^9−10≤numbersi​≤109,0 \leq target \leq 10^90≤target≤109 要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)

示例1

输入:
[3,2,4],6
返回值:
[2,3]
说明:
因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3]            

示例2

输入:
[20,70,110,150],90
返回值:
[1,2]
说明:
20+70=90     

解答

import java.util.*;

public class Solution{

    public int[] twoSum(int[] nums,int check){

        HashMap<integer,integer> map=new HashMap();

        int[]result=new int[2];

        for(int i=0;i<nums.length;i++){

           if(map.get(check-nums[i])!==null){

     //{map.get(输入key)}--->取value;

             result[0]=map.get(check-nums[i])+1;

             result[1]=i+1;

             return result;

}

           else

              map.put(num[i],i);

}

return result;

}

}

 

标签:map,下标,hashmap,leq,BM50,int,result,两数,10
From: https://www.cnblogs.com/somedieyoung/p/16716195.html

相关文章

  • 力扣2(java&python)-两数相加(中等)
    题目:给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表......
  • 自己实现一个简单版的HashMap
    HashMap简介HashMap是一个散列表,它存储的内容是键值对(key-value)映射。HashMap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap的实现......
  • 刷题笔记(leetcode02-两数相加)
    普通的循环解法,C代码:1/**2*Definitionforsingly-linkedlist.3*structListNode{4*intval;5*structListNode*next;6*};7......
  • 学习-数组相关算法-两数之和
    obj[1]=111letobj={"5":222}console.log(obj[5])////222console.log(obj['5'])//222//console.log(obj.5)这样写会报错obj[1]=111console.log(JSO......
  • 两数之和
    var twoSum = function(nums, target) {    const map=new Map();    for(let i=0;i<nums.length;i++){        //来找对象的值      ......
  • LeetCode 1 两数之和
    classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){unordered_map<int,int>map;for(inti=0;i<nums.size();......
  • hashMap底层实现原理
    HashMap中的put()和get()的实现原理:1、map.put(k,v)实现原理(1)首先将k,v封装到Node对象当中(节点)。(2)然后它的底层会调用K的hashCode()方法得出hash值。(3)通过哈希表函数/哈希......
  • HashMap源码分析
    HashMap1.81、构造函数:赋值负载因子0.75,当负载因子大于0.75时就会发送扩容publicHashMap(){this.loadFactor=DEFAULT_LOAD_FACTOR;//allotherfie......
  • HashMap 的实现原理
    HashMap基于Hash算法实现的,我们通过put(key,value)存储,get(key)来获取。当传入key时,HashMap会根据key.hashCode()计算出hash值,根据hash值将value保存在bu......
  • HashMap 和 Hashtable 有什么区别?
    存储:HashMap运行key和value为null,而Hashtable不允许。线程安全:Hashtable是线程安全的,而HashMap是非线程安全的。推荐使用:在Hashtable的类注释可以看到,Hash......