Max Min Discussions | Algorithms | HackerRank

Sort by

recency

|

883 Discussions

|

  • + 0 comments

    Java:

    public static int maxMin(int k, List arr) {

        int[] arr2 = arr.stream().mapToInt(i -> i).toArray();
    
        //primitive arrays are faster
    
        Arrays.sort(arr2);
    
        int diff = Integer.MAX_VALUE;
    
        for (int j=0; j < arr2.length - k + 1; ++j) {
    
            if (arr2[j+k-1] - arr2[j] < diff) {
    
                diff = arr2[j+k-1] - arr2[j];
    
            }
    
        }
        return diff;
    }
    
  • + 0 comments

    def maxMin(k, arr): return min(map(lambda x, y: abs(x - y), sorted(arr)[:-k + 1], sorted(arr)[k - 1:]))

  • + 0 comments

    JS

    function maxMin(k, arr) {
      // sort - lowest to highest
      arr.sort((a, b) => a - b);
    
      // calculate unfairness of "first chunk" of size k
      let minUnfairness = arr[k - 1] - arr[0];
    
      for (let i = 1; i + k - 1 < arr.length; i++) {
        // calculate unfairness in "next chunk" of size k
        const unfairness = arr[i + k - 1] - arr[i];
    
        if (unfairness < minUnfairness) {
          minUnfairness = unfairness;
        }
      }
    
      return minUnfairness;
    }
    
  • + 0 comments

    Java Solution

    Collections.sort(arr);
    int min=Integer.MAX_VALUE;
    for(int i=0;i<arr.size()-k+1;i++){
        if((arr.get(i+k-1)-arr.get(i))<min)
        {
            min=arr.get(i+k-1)-arr.get(i);
        }
    }
    return min;
    
    }
    
  • + 0 comments

    Two pointer approach

    def maxMin(k, arr):
        # Write your code here
        arr.sort()
        unfairness = []
        p1 = 0
        p2 = k - 1
        
        while p2 < len(arr):
            unfairness.append(arr[p2] - arr[p1])
            p1 += 1
            p2 += 1
        return min(unfairness)
        ****