美文网首页
398:随机数索引

398:随机数索引

作者: nobigogle | 来源:发表于2022-04-25 09:12 被阅读0次

题意

给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。

注意

数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。

示例

int[] nums = new int[] {1,2,3,3,3};
Solution solution = new Solution(nums);

// pick(3) 应该返回索引 2,3 或者 4。每个索引的返回概率应该相等。
solution.pick(3);

// pick(1) 应该返回 0。因为只有nums[0]等于1。
solution.pick(1);

问题: 如何在无限序列中随机抽取元素

结论:如果有n个元素,第i次选择第i个元素的概率为\frac {1}{i},第i+1次仍然保持该元素的概率为1-\frac {1}{i+1}(因为当前选择第i+1个元素的概率为\frac {1}{i+1}.因此如果有n个元素,其选择第i个元素的最终概率为:

相关文章

  • 398:随机数索引

    题意 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 ...

  • LC吐血整理之Random篇

    所有题解方法请移步 github-Leecode_summary 384.打乱数组 & 398.随机数索引 set...

  • LeetCode 398 随机数索引

    题目 https://leetcode-cn.com/problems/random-pick-index/ 题解...

  • 398. 随机数索引

    蓄水池算法 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组...

  • 398. 随机数索引(Python)

    题目 难度:★★☆☆☆类型:数组方法:数学 力扣链接请移步本题传送门更多力扣中等题的解决方案请移步力扣中等题目录 ...

  • LeetCode 398. 随机数索引

    1.题目 https://leetcode-cn.com/problems/random-pick-index/ ...

  • Leetcode_398_随机数索引_hn

    题目描述 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中...

  • LeetCode 第 398 题: 随机数索引

    1、前言 2、思路 这道题简单的思路是定义一个 Map > 的结构的数据,然后把数往里塞就行。 最吊的方法是蓄水池...

  • 398. 随机数索引 - 每日一题

    给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给...

  • 398.leetcode题目讲解(Python):随机数索引(R

    题目 解题思路 这道题比较简单,有两种解题思路: 解法一 遍历nums,记录索引位置,然后通过random.sam...

网友评论

      本文标题:398:随机数索引

      本文链接:https://www.haomeiwen.com/subject/hdzulrtx.html