Advertisement
saurav_kalsoor

Basket Full of Balls - JAVA

Aug 12th, 2022
872
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author : Saurav Kalsoor
  2. // Basket Full of Balls - JAVA
  3.  
  4.  
  5. import java.util.*;
  6.  
  7. public class Test {
  8.    
  9.     static Scanner sc = new Scanner(System.in);
  10.  
  11.     public static void main(String[] args) {
  12.         int n = sc.nextInt();
  13.         int k = sc.nextInt();
  14.  
  15.         ArrayList<Integer> arr = new ArrayList<>();
  16.         for(int i=0; i < n ;i++){
  17.             arr.add(sc.nextInt());
  18.         }
  19.  
  20.         System.out.println(bucketFullOfBalls(n, k, arr));
  21.     }
  22.  
  23.     public static int bucketFullOfBalls(int n, int k, ArrayList<Integer> arr){
  24.         HashMap<Integer, Integer> count = new HashMap<>();
  25.         for(int x : arr){
  26.             count.put(x, count.getOrDefault(x, 0) + 1);
  27.         }
  28.  
  29.         ArrayList<Integer> temp = new ArrayList<>();
  30.         for(Map.Entry<Integer, Integer> m : count.entrySet()){
  31.             if(m.getValue() >= k){
  32.                 temp.add(m.getKey());
  33.             }
  34.         }
  35.  
  36.         int m = temp.size();
  37.         if(m == 0){
  38.             return -1;
  39.         }
  40.  
  41.  
  42.  
  43.         int l = temp.get(0), r = l, i = 1;
  44.         while(i < m){
  45.             int j = i - 1;
  46.             while(i < m && temp.get(i) == temp.get(i-1) + 1){
  47.                 i++;
  48.             }
  49.             i--;
  50.    
  51.             if(temp.get(i) - temp.get(j) > r - l){
  52.                 l = temp.get(j);
  53.                 r = temp.get(i);
  54.             }
  55.  
  56.             i+=2;
  57.         }
  58.  
  59.         return r - l;
  60.     }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement