首页 > 其他分享 >两数之和

两数之和

时间:2024-03-24 19:22:06浏览次数:35  
标签:java target nums int anotherIndex result 两数

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它的数组下标。

你可以假设每种输入只会对应一个答案,但是,数组中同一个元素在答案里不能重复出现。

可以按任意顺序返回答案。

 

 

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

public class TwoSum {

    public static int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        Map<Integer, Integer> storeNums = new HashMap<>(nums.length, 1);
        for (int i = 0; i < nums.length; i++) {
            int another = target - nums[i];
            Integer anotherIndex = storeNums.get(another);
            if(null != anotherIndex) {
                result[0] = anotherIndex;
                result[1] = i;
            }
            else {
                storeNums.put(nums[i], i);
            }
        }
        return result;
    }


    public static void main(String[] args) {
        int[] nums = {2,5,7,13,8};
        int target = 10;
        System.out.println(Arrays.toString(twoSum(nums, target)));
    }
}

  返回答案:

[0, 4]

  

标签:java,target,nums,int,anotherIndex,result,两数
From: https://www.cnblogs.com/zhzhang/p/18092862

相关文章

  • 两数之和与回文数
    主函数我就不写了,随便一想就能弄出来两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任......
  • 【每周例题】力扣 C++ 两数之和
    两数之和题目 题目分析1.返回两个数的下标和,第一反应可以是采用双for循环2.数组数值等于整数目标值,那就采用if判断,符合直接输出,跳出循环,避免输出多个答案3.由于力扣题目采用了容器,大家可以选择点击该链接了解:容器代码#include<iostream>#include<vector>usingnamesp......
  • 两数之和详细解答
    classSolution{publicint[]twoSum(int[]nums,inttarget){//我们要找到2个数之和等于target//即我们需要找到nums[i]+nums[j]==target,并且返回他们的下标(i和j),其中i!=jint[]ans=newint[2];//声明一个大小为2的数组用来保存结果//我们通过循环来遍历所有的数......
  • 两数相加详细解说
    Definitionforsingly-linkedlist.publicclassListNode{intval;ListNodenext;ListNode(){}ListNode(intval){this.val=val;}ListNode(intval,ListNodenext){this.val=val;this.next=next;}}*/classSolution{publicListNodead......
  • CF765F,CF1793F,JSOI2009:区间最接近的两数
    link:https://codeforces.com/contest/765/problem/F据说是典中典问题(出现三次了)题意:给一个序列\(a_1,\dots,a_n\),有\(m\)次询问,每次询问给\(l,r(1\leql<r\leqn)\)问\(\min_{l\leqs<t\leqr}|a_s-a_t|\)\(1\leqn,m\leq10^5,a_i\leq10^9\).思路这个做法还是很妙,想......
  • 1. 两数之和
    1.两数之和力扣题目链接(opensnewwindow)给定一个整数数组nums 和一个目标值target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定nums=[2,7,11,15],......
  • Leecode 求两数之和
    Day1刷题我的解题思路是按照第一个元素往后排,不重复的找相加的组合,判断是否为target值,时间复杂度较高,为\(\mathcal{O}(n^2)\)。classSolution{publicint[]twoSum(int[]nums,inttarget){intflag=1;while(flag==1){for(in......
  • LeetCode01.两数之和
    ques:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=......
  • leetcode 2.两数相加 ,链表
    2.两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。 示例1:输入:l1=[2,4......
  • abc331E 两数组元素间带限制的最大和
    题面:给定大小为n的数组A,大小为m的数组B,那么共有n*m个元素和。现给出L对禁用下标(a,b),找一对不在L中的下标(i,j),使用A[i]+B[j]最大,求该最大值。范围:n,m<=1e5;1<=L<=min(1e5,nm-1)思路:先对A和B按从大到小排序,然后让i指向A起始位置,j指向B起始位置,将对应的四元组(sum,i,j,flag)加入......