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)
 */
相关文章
|
JavaScript
js点点正则表达式,随机数
js点点正则表达式,随机数
|
JavaScript 前端开发 数据安全/隐私保护
如何在JavaScript中生成随机数
在编程中,我们经常需要使用随机数来模拟不确定性或创建随机化的功能。JavaScript提供了几种方法来生成随机数。让我们看看其中一些方法。
592 0
|
JavaScript 前端开发 索引
JavaScript基础知识-数组基于索引访问
关于JavaScript数组基于索引访问的基础知识介绍。
107 1
JavaScript基础知识-数组基于索引访问
|
JavaScript 前端开发 安全
JavaScript中获取随机数的方法
JavaScript中获取随机数的方法
365 1
|
JavaScript 前端开发 索引
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
|
JavaScript 前端开发 vr&ar
如何在 JavaScript 中对字符串进行索引、拆分和操作
如何在 JavaScript 中对字符串进行索引、拆分和操作
223 0
|
JavaScript 前端开发 索引
JavaScript 数组的索引方法数组转换为字符串方法
JavaScript 数组的索引方法数组转换为字符串方法
|
JavaScript
js 生成随机数(含随机颜色)
js 生成随机数(含随机颜色)
151 0
|
JavaScript 前端开发
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
138 1
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
292 0