一、题目要求
- 给定一个整数 n 和一个无重复黑名单整数数组 blacklist,设计一种算法,从 [0, n - 1] 范围内的任意整数中选取一个未加入黑名单 blacklist 的整数,任何在上述范围内且不在黑名单 blacklist 中的整数都应该有同等的可能性被返回。
- 优化你的算法,使它最小化调用语言内置随机函数的次数。
- 实现 Solution 类:
-
- Solution(int n, int[] blacklist) 初始化整数 n 和被加入黑名单 blacklist 的整数;
-
- int pick() 返回一个范围为 [0, n - 1] 且不在黑名单 blacklist 中的随机整数。
- 示例 1:
输入
["Solution", "pick"