思路:使用hashmap,key为数组中的值,value为数组的角标.
时间复杂度为O(n)
//int[] nums = {1, 3, 4, 6, 2, 3, 8}; int target = 10;
public void test(int[] nums, int target) {
Map<Integer,Integer> temp = new HashMap<>();
for (int i = 0; i < nums.length - 1; i++) {
if (temp.containsKey(target-nums[i])){
System.out.println(i+":"+temp.get(target-nums[i]));
return;
}
temp.put(nums[i],i);
}
}
本文介绍了一种利用哈希表(HashMap)优化查找目标值与数组元素差值对应角标的方法。通过将数组值作为键,角标作为值,实现在常数时间内查找,适用于求解目标值在数组中出现的位置,时间复杂度为O(n)。
649

被折叠的 条评论
为什么被折叠?



