这个时候不得不说数据结构的强大
和为S的两个数字
http://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { if (array.length==0) return new ArrayList<Integer>(); TreeMap<Integer, ArrayList<Integer>> map = new TreeMap<>(); HashSet<Integer> set = new HashSet<>(); for(int i=0;i<array.length;i++){ int target=sum-array[i]; if (set.contains(target)){ ArrayList<Integer> integers = new ArrayList<>(); integers.add(target); integers.add(array[i]); map.put(target*array[i],integers); }else{ set.add(array[i]); } } if (map.size()>0){ return map.get(map.firstKey()); }else{ return new ArrayList<Integer>(); } }