一个存放int类型的不重复数组,已知和,求的两个数在数组的位号
1.暴力法
通过两个for循环,第一个for循环拿到数组的第一个数,记录位号i,接下来第二个for循环拿到数组中剩余的数,记录位号j,通过比较加法相等则返回这两个数的位号i,j。
2.两遍哈希表
新建一个哈希表map,将数组中所有数,以具体数值为键,以位号为值,制作一个map,接下来一个新的for循环,判断数组中的一个值,能否在map中找到,和之减的值。如果存在并且不能是本身,则返回当前数组的位号与map中找到的值所对应的位号。
3.单次哈希表
新建一个map,for循环每次在map中查找是否有索引为具体数值,值为位号的值,如果没有就把当前的值与位号存入到map中,接下来的循环当找到map中存在所需的键值对,即可返回。