给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
方法/步骤
1
思路一:两层循环,先用第一个数与第二个数相加,一直到第一个数与最后一个数相加。如果和不符合条件,那么从第二个数开始,第二个数与第三个数相机,一直到最后一个数相加。依次类推。
2
思路二:哈希函数,把数组中的数依次往数据字典放。不过key值放数组的值,value值放数组的下标。找是否存在目标减去数组差值的key值是否存在。存在那么输出数组的下标和差的key值对应的value值。
3
然后我们来回顾一下知识点。数组:数组是一个存储相同类型元素的集合。
4
哈希表:哈希表是一个容器,用来存储键值对。
5
我们在什么情况下使用哈希表呢?我们要符合以下几点要求:某些数据会被高频率的查询、数据量大、查询字段包含字符串类型、数据类型不唯一。
6
哈希表的基本操作有:添加一个键值对:hash.add(key,value)移除一个键值对:hash.Remove(key)清楚所有的元素:hash.Clear();判断时候含特定的key值:hash.contains(key)
7
哈希表和数据字典都可以循环数据,我们来考虑一下他们的效率。我们拿100万条数据来做下实验。我们可以看出,在这种情况下数据字典查询数据比哈希表快多了。