1. 程式人生 > 其它 >#力扣 LeetCode1200. 最小絕對差 @FDDLC

#力扣 LeetCode1200. 最小絕對差 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/minimum-absolute-difference/

Java程式碼:

class Solution {
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        Arrays.sort(arr);
        int[] diff=new int[arr.length-1];
        int min=Integer.MAX_VALUE;
        for(int i=diff.length-1;i>=0;i--){
            diff[i]=arr[i+1]-arr[i];
            if(min>diff[i])min=diff[i];
        }
        List<List<Integer>> ans=new LinkedList<>();
        for(int i=0;i<diff.length;i++)if(diff[i]==min)ans.add(List.of(arr[i],arr[i+1]));
        return ans;
    }
}

Java程式碼二:

class Solution {
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        Arrays.sort(arr);
        int min=Integer.MAX_VALUE;
        List<List<Integer>> ans=new LinkedList<>();
        for(int i=0,diff,end=arr.length-2;i<=end;i++){
            diff=arr[i+1]-arr[i];
            if(min>diff){
                min=diff;
                ans.clear();
            }
            if(diff==min)ans.add(List.of(arr[i],arr[i+1]));
        }
        return ans;
    }
}