需求:
给出一个数组,和一个值target。找出数组中是否有两个元素相加等于target。
示例一:
输入:int[] vals =new int[]{2, 3,1,4}; int target =7;
输出:{1,3};
思路:
题的重点是求和等于rarget,那么我们利用这一点,循环每个元素找到这个元素与target差值gap。以gap为键去map中查找,如果返回结果说明对应求和的值已遍历过,将map返回值的value与循环元素的下边返回即可,否则以此值为key以数组中的下边为value存入map。
这里为什么会选择map,因为在计算过程中我们需要存储值以及值的下标,所有使用map是符合这个场景的。
传参
源码实现
计算结果






网友评论