问题描述:给定一组指定整数数组,找出数组中加和等于特定数的两个数。 函数(方法)twoSum返回这两个数的索引,index1必须小于index2。 另外:你可以假设一个数组只有一组解。 一个栗子: Input: numbers={2, 7, ...
问题描述:给定一组指定整数数组,找出数组中加和等于特定数的两个数。
函数(方法)twoSum返回这两个数的索引,index1必须小于index2。
另外:你可以假设一个数组只有一组解。
一个栗子:
Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2
算法实现如下:
1 /** 2 * 时间复杂度O(n) 3 * @param array 4 * @param target 5 * @return Map<Integer,Integer> 6 */ 7 public static Map<Integer, Integer> twoSum(int[] array, int target) { 8 9 //Map<value,index>10 Map<Integer, Integer> result = new HashMap<Integer, Integer>();11 12 Map<Integer, Integer> container = new HashMap<Integer, Integer>();13 for (int i = 0; i < array.length; i++) {14 if (!container.containsKey(target - array[i])) {15 container.put(array[i], i + 1);16 } else {17 result.put(target - array[i], container.get(target - array[i]));18 result.put(array[i], i + 1);19 break ;20 }21 }22 23 return result;24 }
原标题:LeetCode第一题以及时间复杂度的计算
关键词:时间
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。