网站保留密码 怎么做美国搜索引擎排名
题目
在一个无序数组中找到两个数,两个数之和为给定的一个数,返回两个数在数组中的下标。
原理
遍历数组,遍历到一个数字的时候,记录下这个数及其下标,遍历时判断给定数减去这个数为key在map中是否存在,存在则返回两个下标,否则将数和下标放入map即可。
代码
public static void main(String[] args) {int[] indexArray = getIndexArray(10, new int[]{2, 7, 5, 3, 1, 6});System.out.println(Arrays.toString(indexArray));}private static int[] getIndexArray(int num, int[] arr) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < arr.length; i++) {if (null != map.get(num - arr[i])) {return new int[]{map.get(num - arr[i]), i};}map.put(arr[i], i);}return null;}