js力扣每日一题---398.随机数索引

简介: js力扣每日一题---398.随机数索引

leetcode---398.随机数索引


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


注意:

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


示例:



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);



/**
 * @param {number[]} nums
 */
var Solution = function(nums) {
    this.nums = nums
};
/** 
 * @param {number} target
 * @return {number}
 */
 Solution.prototype.random = function(x) {
     return Math.floor(Math.random()*x)
 }
Solution.prototype.pick = function(target) {
    let cnt = 0;
    let ans = 0;
    for(let i=0;i<this.nums.length;i++) {
        let x = this.nums[i];
        if(x===target) {
            cnt++;
            if(this.random(cnt)===0) {
                ans = i;
            }
        }
    }
    return ans;
};
/**
 * Your Solution object will be instantiated and called as such:
 * var obj = new Solution(nums)
 * var param_1 = obj.pick(target)
 */
相关文章
|
8月前
|
JavaScript
js点点正则表达式,随机数
js点点正则表达式,随机数
|
8月前
|
JavaScript 前端开发 数据安全/隐私保护
如何在JavaScript中生成随机数
在编程中,我们经常需要使用随机数来模拟不确定性或创建随机化的功能。JavaScript提供了几种方法来生成随机数。让我们看看其中一些方法。
88 0
|
3小时前
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
8 0
|
3小时前
|
JavaScript 前端开发 索引
JavaScript 数组的索引方法数组转换为字符串方法
JavaScript 数组的索引方法数组转换为字符串方法
|
3小时前
|
JavaScript 前端开发
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
16 1
|
3小时前
|
缓存 JavaScript Java
thymeleaf引用JS加随机数防止缓存
thymeleaf引用JS加随机数防止缓存
25 0
|
3小时前
|
安全 JavaScript 算法
JS随机数与安全
JS随机数与安全
|
3小时前
|
JavaScript
js 生成随机数
js 生成随机数
|
7月前
|
JavaScript 前端开发
JS随机数功能详解
JS随机数功能详解
105 0
|
11月前
|
JavaScript 前端开发
JavaScript —— 生成随机数
JavaScript —— 生成随机数
118 0