Advertisement
thewitchking

Untitled

Dec 14th, 2023
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.83 KB | None | 0 0
  1. class Solution {
  2.  
  3.     int sum = 0;
  4.     int n = 0;
  5.     int [] sumArr;
  6.     public Solution(int[] w) {
  7.         int i=0;
  8.         n=w.length;
  9.         sumArr = new int[n];
  10.         for(int a:w){
  11.             sum+=a;
  12.             sumArr[i++]=sum;
  13.         }
  14.     }
  15.    
  16.     public int pickIndex() {
  17.        
  18.         int rdx = (int) (Math.random()*sum)+1;
  19.         int left = 0;
  20.         int right = n-1;
  21.         while(left<right){
  22.             int mid = left+(right-left)/2;
  23.             if(rdx == sumArr[mid])
  24.                 return mid;
  25.             else if(rdx>sumArr[mid])
  26.                 left = mid+1;
  27.             else
  28.                 right = mid;
  29.         }
  30.         return left;
  31.     }
  32. }
  33.  
  34. /**
  35.  * Your Solution object will be instantiated and called as such:
  36.  * Solution obj = new Solution(w);
  37.  * int param_1 = obj.pickIndex();
  38.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement