LeetCode No.398 Random Pick Index
来源:互联网 发布:怎么看手机网络制式 编辑:程序博客网 时间:2024/06/01 12:51
Given an array of integers with possible duplicates, randomly output the index of a given target number. You can assume that the given target number must exist in the array.
Note:
The array size can be very large. Solution that uses too much extra space will not pass the judge.
Example:
int[] nums = new int[] {1,2,3,3,3};Solution solution = new Solution(nums);// pick(3) should return either index 2, 3, or 4 randomly. Each index should have equal probability of returning.solution.pick(3);// pick(1) should return 0. Since in the array only nums[0] is equal to 1.solution.pick(1);
====================================================================
题目链接:https://leetcode.com/problems/random-pick-index/
题目大意:一个数在数组中可能出现多次,要求等概率返回一个位置。
思路:先用一个数组将所有满足条件的下标记录下来,利用蓄水池抽样原理对它们进行随机抽取。
参考代码:
class Solution {public: Solution(vector<int> nums) { this -> nums = nums ; } int pick(int target) { int n = nums.size() ; vector <int> index ; for ( int i = 0 ; i < n ; i ++ ) if ( nums[i] == target ) index.push_back ( i ) ; int sum = index.size() , ans = index[0] ; for ( int i = 1 ; i < sum ; i ++ ) if ( rand() % ( i + 1 ) == 0 ) ans = index[i] ; return ans ; }private: vector <int> nums ;};/** * Your Solution object will be instantiated and called as such: * Solution obj = new Solution(nums); * int param_1 = obj.pick(target); */
0 0
- LeetCode No.398 Random Pick Index
- LeetCode[398] Random Pick Index
- 【Leetcode】398. Random Pick Index
- Leetcode 398. Random Pick Index
- [LeetCode] 398. Random Pick Index
- LeetCode 398. Random Pick Index
- [Leetcode]398. Random Pick Index
- 【Leetcode】398. Random Pick Index
- 【LeetCode】 398. Random Pick Index
- LeetCode 398. Random Pick Index
- [leetcode]398. Random Pick Index
- [LeetCode]398. Random Pick Index
- Leetcode-398. Random Pick Index
- [leetcode] 398. Random Pick Index
- leetcode 398. Random Pick Index
- [LeetCode] 398. Random Pick Index
- leetcode 398. Random Pick Index
- LeetCode—398. Random Pick Index
- oracle安装教程
- 算法-希尔排序
- Codeacademy Python-06-Student Becomes the Teacher
- java.lang.UnsupportedOperationException: Not implemented by the S3FileSystem FileSystem
- 从零单排——面向对象角度认识JS世界Part2
- LeetCode No.398 Random Pick Index
- 如何调用DLL中的函数
- 【NOIP模拟赛】Pickad 锄奸
- 最像JAVA的构造函数
- Coursera Machine Learning 第二周 quiz Programming Exercise 1: Linear Regression
- VS2010、SQL Server 2008安装详解
- Bmp位图文件
- “tar: Removing leading `/’ from member names”的错误
- js placeholder