3、给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字
程序员文章站
2022-03-13 12:52:53
...
给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字 要求返回两个元素的下角标,比如a[1,3,5,7]和数字6,返回index1= 1,index2 = 3
public static int[] sum(int nums[],int tarNum){
//首先使用哈希map,存储数组的元素和该元素对应的下角标
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for(int i = 0;i < nums.length; i++){
map.put(nums[i],i);
}
//定义一个长度为2的数组,记录找到的两个元素的位置
int index[] = new int[2];
//遍历数组,找到第二个元素的位置
for(int i = 0;i < nums.length;i++){
//定义一个数字j,用于记录第二个元素的位置,第一个元素为i不用专门记录
Integer j = map.get(tarNum - nums[i]);
//如果j是位于i的后面并且j存在,就把两个元素各加一并返回
if(j != null && j > i){
index[0] = i + 1;
index[1] = j + 1;
}
}
return index;
}
推荐阅读
-
只出现一次的数字III(给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。)
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
-
算法题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
-
LeetCode1.两数之和:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,返回数组下标。假设每种输入只对应一个答案。但数组中同一个元素不能使用两遍
-
3、给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字