欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

两数之和

程序员文章站 2022-07-14 15:26:26
...

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

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

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:利用map可以动态添加数的属性

 public int[] twoSum(int[] nums, int target) {
        int[] indexs = new int[2];
        // 建立k-v ,一一对应的哈希表
        HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
        for(int i = 0; i < nums.length; i++){
            if(hash.containsKey(nums[i])){
                indexs[0] = i;
                indexs[1] = hash.get(nums[i]);
                return indexs;
            }
            // 将数据存入 key为补数 ,value为下标
            hash.put(target-nums[i],i);
        }
        return indexs;
    }

方法一:利用双重for循环将数给算出来

public int[] twoSum(int[] nums, int target) {
		for(int i = 0; i < nums.length; i++){
			for (int j = 1; j < nums.length-1; j++) {
				if(nums[j] == target - nums[i]) {
					return new int[]{i,j};
				}	
			}
		}
		throw new IllegalArgumentException("NO VALUE");
	}
相关标签: 两数之和 算法