Minimum Absolute Difference in an Array

Sort by

recency

|

66 Discussions

|

  • + 0 comments
    def minimumAbsoluteDifference(arr):
        # Write your code here
        arr.sort()
        mini = abs(arr[0]-arr[1])
        for i in range(len(arr)-1):
            if abs(arr[i]-arr[i+1])<mini:
                mini = abs(arr[i]-arr[i+1])
        return mini
    
  • + 0 comments

    Rust best solution

    If you’re looking for solutions to the 3-month preparation kit in either Python or Rust, you can find them below: my solutions

    fn minimum_absolute_difference(arr: &[i32]) -> i32 {
        //Time complexity: O(n*log(n))
        //Space complexity (ignoring input): O(n)
        let mut arr = arr.to_vec();
        arr.sort_unstable();
        let mut minimum_difference = (arr[0] - arr[1]).abs();
        for index in 2..arr.len() {
            let difference = (arr[index] - arr[index - 1]).abs();
            if minimum_difference > difference {
                minimum_difference = difference;
            };
        }
        minimum_difference
    }
    
  • + 0 comments

    Python best solution

    If you’re looking for solutions to the 3-month preparation kit in either Python or Rust, you can find them below: my solutions

    def minimum_absolute_difference(arr):
        # Time complexity: O(n*log(n))
        # Space complexity (ignoring input): O(1)
        arr.sort()
        minimum_difference = abs(arr[0] - arr[1])
        for index in range(2, len(arr)):
            difference = abs(arr[index] - arr[index - 1])
            if minimum_difference > difference:
                minimum_difference = difference
    
        return minimum_difference
    
  • + 0 comments
    #python 3 solution
    
    from itertools import pairwise
    
    def minimumAbsoluteDifference(arr):
        return min(b-a for a,b in pairwise(sorted(arr)))
    
  • + 1 comment

    My rust solution:

    fn minimumAbsoluteDifference(arr: &mut [i32]) -> i32 {
        arr.sort();
    
        arr.windows(2)
            .map(|window| (window[0] - window[1]).abs())
            .min()
            .unwrap()