Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. class Solution {
  2. public int minTaps(int n, int[] ranges) {
  3.  
  4. List<Range> lranges= new ArrayList<>();
  5.  
  6. for(int i =0;i<ranges.length;i++){
  7. int from = Math.max(0,i - ranges[i]);
  8. int to = Math.min(n, i + ranges[i]);
  9. int size = to - from;
  10. lranges.add(new Range(from,to,size));
  11. }
  12.  
  13. Collections.sort(lranges);
  14.  
  15. boolean[] watered = new boolean[n];
  16.  
  17. int res = 0;
  18.  
  19. for(Range r : lranges){
  20. boolean updated = false;
  21. for(int i = r.from;i<r.to;i++){
  22. if(watered[i] == false){
  23. updated = true;
  24. }
  25. watered[i]=true;
  26. }
  27. if(updated){
  28. res++;
  29. }
  30. boolean fin = true;
  31. for(int i = 0;i<watered.length;i++){
  32. if(watered[i] == false){
  33. fin = false;
  34. break;
  35. }
  36. }
  37.  
  38. if(fin == true){
  39. return res;
  40. }
  41.  
  42. }
  43.  
  44. return -1;
  45. }
  46.  
  47. class Range implements Comparable<Range>{
  48. int from;
  49. int to;
  50. int size;
  51.  
  52. public Range(int from, int to, int size) {
  53. this.from=from;
  54. this.to = to;
  55. this.size=size;
  56. }
  57.  
  58. public int compareTo(Range other){
  59. return other.size - size;
  60. }
  61. }
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement