题解 | #和为S的两个数字#
和为S的两个数字
http://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b
import java.util.*; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> list = new ArrayList<>(); // map映射元素关系 Map<Integer,Integer> map = new HashMap<>(); // 定义两个变量,用来存储最小结果集用的。 int a = 100, b=100; for(int i=0;i<array.length;i++){ int key = sum-array[i]; if(map.containsKey(key)){ if(key*array[i] < a*b){ a=key; b=array[i]; } }else{ map.put(array[i],i); } } if(a!=100 && b!=100){ list.add(a); list.add(b); } return list; } }