LeetCode—最小绝对差(排序)

最小绝对差(简单)

2020年7月23日

题目来源:力扣

在这里插入图片描述

解题

1.先进行排序
2.两两比对差值
3.刷新list
4.注意arraylist构建时可以指定空间大小,提速

class Solution {
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        List<List<Integer>> list = new ArrayList<>();
        // 先进行排序
        Arrays.sort(arr);
        int len = arr.length, min = Integer.MAX_VALUE;
        for(int i=1;i<len;i++){
            int val = arr[i]-arr[i-1];
            if(val < min){
                list.clear();
                List<Integer> slist = new ArrayList<>(2);
                slist.add(arr[i-1]);
                slist.add(arr[i]);
                list.add(slist);
                min = val;
            }
            else if(val == min){
                List<Integer> slist = new ArrayList<>(2);
                slist.add(arr[i-1]);
                slist.add(arr[i]);
                list.add(slist);
            }
        }
        return list;
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41541562/article/details/107541532