我是靠谱客的博主 安静睫毛,最近开发中收集的这篇文章主要介绍数组算法题一:两数之和--利用哈希表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

例子
输入:nums = [2,7,11,15], target = 9
输出:[0,1]

分析
当我们遍历到nums[i]时,用target减去nums[i]得到一个值,在创建的哈希表中查找是否有这个值的键,有的话就可以直接返回结果,如果没有,则将nums[i]存入哈希表中(以数字作为键,索引作为值得形式存取),再继续遍历下一个nums[i]和哈希表的键匹配。

java:


class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> ht = new HashMap<Integer, Integer>();
//遍历数组
for (int i = 0; i < nums.length; ++i) {
//判断当前哈希表里有没有,有的话返回当前的数组下标和对应哈希表的值(索引)
if (ht.containsKey(target - nums[i])) {
return new int[]{ht.get(target - nums[i]), i};
}
//没有的话,就把数字A存入哈希表以便后续查询
ht.put(nums[i], i);
}
//返回空数组以防报错
return new int[0];
}
}

来源:力扣(LeetCode)

最后

以上就是安静睫毛为你收集整理的数组算法题一:两数之和--利用哈希表的全部内容,希望文章能够帮你解决数组算法题一:两数之和--利用哈希表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部