Advertisement
smj007

Untitled

Mar 10th, 2024
922
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.61 KB | None | 0 0
  1. class Solution:
  2.  
  3.     def __init__(self, w: List[int]):
  4.         self.w = w
  5.         self.prefix_sum = 0
  6.         self.prefix = []
  7.         for num in self.w:
  8.             self.prefix_sum += num
  9.             self.prefix.append(self.prefix_sum)
  10.  
  11.     def pickIndex(self) -> int:
  12.  
  13.         target = self.prefix_sum * random.random()
  14.         low = 0; high = len(self.w) - 1
  15.  
  16.         while (low <= high):
  17.             mid = (low + high)//2
  18.             if target < self.prefix[mid]:
  19.                 high = mid - 1
  20.                 result = mid
  21.             else:
  22.                 low = mid + 1
  23.  
  24.         return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement