Max Min Discussions | Algorithms | HackerRank

Sort by

recency

|

884 Discussions

|

  • + 0 comments

    Here is my Python solution!

    def maxMin(k, arr):
        arr.sort()
        unfairness = arr[k - 1] - arr[0]
        for i in range(1, len(arr) - k + 1):
            unfairness = min(arr[k + i - 1] - arr[i], unfairness)
        return unfairness
    
  • + 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;
    
    }