Guest User

Untitled

a guest
Apr 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. static int degreeOfArray(int[] arr) {
  2. int max = 0;
  3. Map<Integer, Integer> map = new HashMap<>();
  4. Map<Integer, Integer> startIndex = new HashMap<>();
  5. Map<Integer, Integer> endIndex = new HashMap<>();
  6. for(int i = 0; i < data.length; i++){
  7. int value = data[i];
  8. if(map.containsKey(value)){
  9. map.put(value, map.get(value) + 1);
  10. }else{
  11. startIndex.put(value, i);
  12. map.put(value, 1);
  13. }
  14. endIndex.put(value, i);
  15. max = Integer.max(max, map.get(value));//Calculate the degree of the array
  16. }
  17. int result = data.length;
  18. for(int i : map.keySet()){
  19. if(map.get(i) == max){
  20. int len = endIndex.get(i) - startIndex.get(i) + 1;
  21. result = Integer.min(result, len);
  22. }
  23. }
  24. return result;
  25.  
  26. }
Add Comment
Please, Sign In to add comment