Minimum Absolute Difference in an Array

  • + 0 comments

    This is my java 8 solutions, feel free to ask me any questions.
    My very fist solution using bruteforce:

    public static int minimumAbsoluteDifference(List<Integer> arr) {
        int minimum = Integer.MAX_VALUE;
        int n = arr.size();
        
        //Iterate through all combinations taken 2 of given array,
        //Calculate thier abs different and look for the minimum.
        for(int i = 0; i < n; i++) {
            for(int j = i + 1; j < n; j++) {
                int first = arr.get(i);
                int second = arr.get(j);
                int diff = Math.abs(first - second);
                
                //Update minumum absolute differrence
                if(minimum > diff) {
                    minimum = diff;
                }
            }
        }
        
        return minimum;
    }
    

    Second look (refer):

    public static int minimumAbsoluteDifference(List<Integer> arr) {
        int minimum = Integer.MAX_VALUE;
        int n = arr.size();
        
        //Perform sort the given list ascending
        arr.sort(null);
        
        //Iterate through the sorted list to calculate diff
        for(int i = 1; i < n; i++) {
            int previous = arr.get(i - 1);
            int current = arr.get(i);
            int diff = Math.abs(previous - current);
            
            if(diff < minimum) {
                minimum = diff;
            }
        }
        
        return minimum;
    }