最接近的三数之和 _LintCode

public class Solution {
    /**
     * @param numbers: Give an array numbers of n integer
     * @param target : An integer
     * @return : return the sum of the three integers, the sum closest target.
     */
    public int threeSumClosest(int[] numbers, int target) {
        // write your code here
         if (numbers==null||numbers.length<=0){
            return -1;
        }
         int length = numbers.length;
        //treemap的key是升序
        Map<Integer,Integer> map = new TreeMap<Integer, Integer>();

        for (int i=0;i<length-2;i++){
            for (int j = i+1;j<length-1;j++){
                for (int k = j+1;k<length;k++){

                    map.put(Math.abs(numbers[i]+numbers[j]+numbers[k]-target),numbers[i]+numbers[j]+numbers[k]);
                }
            }
        }
        for (int i:map.keySet()){
           return map.get(i);

        }


        return 0;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章