美文网首页
两个数字之和

两个数字之和

作者: MarioBai | 来源:发表于2019-01-04 09:58 被阅读0次

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解题思路:
这道题如果采用暴力的方法来解决的话,就是通过两个for循环来遍历给定的数组。这样的做比较费时。比较好的方式是采用HashMap的方式来解决该问题。通过HashMap来存储数组中的数组和对应的下标。最后通过两次调用HashMap即可获得两个元素的下标。

import java.util.HashMap;

/*
 * @author: mario
 * @date: 2019/1/4
 * 两个数之和
 * **/
public class Problem01 {
    public int[] twoSum(int[] nums, int target){
        if(nums.length == 0){
            return nums;
        }
        int[] result = new int[2];
        HashMap<Integer, Integer> hash = new HashMap<>();
        for(int i = 0; i < nums.length; i++){
                hash.put(nums[i], i);
        }
        for(int i = 0; i < nums.length; i++){
            int temp = target - nums[i];
            if(hash.containsKey(temp) && hash.get(temp) != i){
                result[0] = i;
                result[1] = hash.get(temp);
            }
        }
        
        return result;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] nums = {2,7,11,15};
        Problem01 pb = new Problem01();
        int[] result = new int[2];
        result = pb.twoSum(nums, 9);
        System.out.println("result:"+result[0]);
        System.out.println("result:"+result[1]);
    }

}

leetcode题目地址: https://leetcode-cn.com/problems/two-sum/

相关文章

  • 25-列表实现斐波那契数列

    列表中先给定两个数字,后面的数字总是前两个数字之和。

  • 两个数字之和

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

  • 18.四数之和

    自己解法 四数之和解题思路和三数之和类似,不过这个方式是固定前两个数字,后面两个数字用夹逼的方式向中间逼近,这样时...

  • FreeCodeCamp中级算法(更新中)

    1.计算一个范围数字之和 我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。 sumAl...

  • JavaScript之斐波那契数列的实现

    一个斐波那契(Fibonacci)数字是之前两个斐波那契数字之和。最前面的两个数字是0和1。 用函数方式表示: 1...

  • 快速查找数组中“和”为X的两个数

    快速判断在一个数组中,是否存在两个数字,让这两个数字之和等于一个给定的值 X。 以数组 arr[] = {11, ...

  • leetcode [1] Two Sum

    题目要求: 给定一个数组nums,然后再给定一个数字,找出数组中哪两个数字之和等于这个给定的数字。例如:Given...

  • 数学和三角函数之SUM

    SUM函数主要作用是计算数字之和,返回某一单元格区域中数字、逻辑值及数字的文本表达式之和。本文介绍Microsof...

  • Hot100 LeetCode(三)

    1. 求根到叶子节点数字之和(dfs、bfs) 求根到叶子节点数字之和(leetcode有2道相同的该题) :ht...

  • SUM函数,你真的会用吗?

    SUM函数主要作用是计算数字之和,返回某一单元格区域中数字、逻辑值及数字的文本表达式之和,今天给大家介绍SUM函数...

网友评论

      本文标题:两个数字之和

      本文链接:https://www.haomeiwen.com/subject/amfhrqtx.html