题目要求在给定的整数数组中找到两个数的索引,使它们的和等于一个特定的目标值。
import java.util.Hashtable;/*** 开发人员: * 时间:2024/2/24*/
//两数之和
public class leecode1 {public static void main(String[] args) {int[] nums = {1,2,3,5,6};int target=9;int[] result=new int[2];//使用Hash键值对,方法containsKeyHashtable<Integer,Integer> map = new Hashtable<>();for (int i = 0; i <nums.length ; i++) {map.put(nums[i],i);}for (int i = 0; i <nums.length ; i++) {if(map.containsKey(target-nums[i])){result[0]=i;result[1]=map.get(target-nums[i]);break;}}System.out.println("两数和为:"+target+",在数组nums中的索引是:"+result[0]+","+result[1]);}
}
在这个代码中,使用了哈希表来提高查找的效率。首先,遍历一次数组,将数组中的每个元素与其索引存储在哈希表中。然后,再次遍历数组,对于每个元素,判断目标值减去当前元素的差值是否存在于哈希表中。如果存在,说明找到了两个数,其和等于目标值。