mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
46 lines
1.6 KiB
HTML
46 lines
1.6 KiB
HTML
<p>给你一个可能含有 <strong>重复元素</strong> 的整数数组 <code>nums</code> ,请你随机输出给定的目标数字 <code>target</code> 的索引。你可以假设给定的数字一定存在于数组中。</p>
|
|
|
|
<p>实现 <code>Solution</code> 类:</p>
|
|
|
|
<ul>
|
|
<li><code>Solution(int[] nums)</code> 用数组 <code>nums</code> 初始化对象。</li>
|
|
<li><code>int pick(int target)</code> 从 <code>nums</code> 中选出一个满足 <code>nums[i] == target</code> 的随机索引 <code>i</code> 。如果存在多个有效的索引,则每个索引的返回概率应当相等。</li>
|
|
</ul>
|
|
|
|
<p> </p>
|
|
|
|
<p><strong>示例:</strong></p>
|
|
|
|
<pre>
|
|
<strong>输入</strong>
|
|
["Solution", "pick", "pick", "pick"]
|
|
[[[1, 2, 3, 3, 3]], [3], [1], [3]]
|
|
<strong>输出</strong>
|
|
[null, 4, 0, 2]
|
|
|
|
<strong>解释</strong>
|
|
Solution solution = new Solution([1, 2, 3, 3, 3]);
|
|
solution.pick(3); // 随机返回索引 2, 3 或者 4 之一。每个索引的返回概率应该相等。
|
|
solution.pick(1); // 返回 0 。因为只有 nums[0] 等于 1 。
|
|
solution.pick(3); // 随机返回索引 2, 3 或者 4 之一。每个索引的返回概率应该相等。
|
|
</pre>
|
|
|
|
<p> </p>
|
|
|
|
<div class="top-view__1vxA">
|
|
<div class="original__bRMd">
|
|
<div>
|
|
<p><strong>提示:</strong></p>
|
|
|
|
<ul>
|
|
<li><code>1 <= nums.length <= 2 * 10<sup>4</sup></code></li>
|
|
<li><code>-2<sup>31</sup> <= nums[i] <= 2<sup>31</sup> - 1</code></li>
|
|
<li><code>target</code> 是 <code>nums</code> 中的一个整数</li>
|
|
<li>最多调用 <code>pick</code> 函数 <code>10<sup>4</sup></code> 次</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="fullscreen-btn-layer__2kn7"> </div>
|