这个时候不得不说数据结构的强大

和为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>();
        }
    }
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
10-31 14:54
已编辑
门头沟学院 算法工程师
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务