LeetCode:398. 随机数索引

要求返回 target 在数组中随机的一个下标

留意,这个数组不是有序的,有序的话使用 二分查找。

这里无序的, 直接保存相同元素的下标,然后随机返回

AC Code

class Solution {int[] nums = null;public Solution(int[] nums) {this.nums = nums;}public int pick(int target) {List<Integer> list = new ArrayList<>();for(int i = 0; i < nums.length; i++){if(nums[i] == target){list.add(i);}}Random random = new Random();return list.get(random.nextInt(list.size()));}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(nums);* int param_1 = obj.pick(target);*/

398. 随机数索引 ( 设计 )相关推荐

  1. 398. 随机数索引(哈希表预处理 Or 蓄水池抽样)

    文章目录 Question Ideas 1.Answer( Java ) `⚡️ getOrDefault(Object key, V defaultValue)` Code①( HashMap 实现 ...

  2. leetcode刷题记录-398. 随机数索引

    前言 今天的题目为中等,跟之前碰到过的一道题思路很相似,利用map表来空间换时间,以此来做到节省时间复杂度. 每日一题 今天的题目是 398. 随机数索引,难度为中等 给你一个可能含有 重复元素 的整 ...

  3. Java实现 LeetCode 398 随机数索引

    398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...

  4. Leetcode 398. 随机数索引 解题思路及C++实现

    解题思路: 题目对空间复杂度有要求.在构造函数中,应该要先把nums数组拷贝一下. 在pick函数中,必然要遍历数组nums,这样才能得到 target 值对应的所有索引,之后再生成一个随机数,返回任 ...

  5. LeetCode系列398—随机数索引(蓄水池抽样)

    题意 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: in ...

  6. LeetCode 398. 随机数索引(概率)

    1. 题目 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: ...

  7. 398. 随机数索引

    链接 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: in ...

  8. LeetCode 398. 随机数索引

    1.题目 https://leetcode-cn.com/problems/random-pick-index/ 2.题解 蓄水池抽样 其思路就是循环之后先判断一下这个数在数组中的索引, 然后随机选出 ...

  9. LeetCode 398 随机数索引 Python

    给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试. 示例: int[] ...

最新文章

  1. 第四章:Spring项目文件上传两种方式(全解析)
  2. vue indev.html,webpack多入口热加载很慢
  3. [APB VNext 笔记] UI
  4. 百度Apollo无人车能力降维释放,打造智能汽车现在可以像拼乐高
  5. pandas.Series.multiply()含义解释
  6. VTK:直线网格之RectilinearGrid
  7. 检测Java Web应用程序而无需修改其源代码
  8. recv, recvfrom, recvmsg
  9. asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟
  10. SpUtil多样加密存储,兼容android9.0
  11. Kali Linux-MSF远控局域网手机
  12. 四个跑马灯的c语言程序,入门编程语言跑马灯,C语言设计跑马灯程序
  13. 随机信号分析学习笔记(6)
  14. 智能化弱电系统工程部分规程
  15. ubuntu下Tomcat更改端口号
  16. Glide加载长图;WebView加载富文本(图片自适应屏幕大小)
  17. 2022道路运输企业安全生产管理人员考试模拟100题及模拟考试
  18. mysql amoeba_MySQL基于Amoeba实现读写分离
  19. 为什么说阿里云和亚马逊云对比,阿里云的性价比比较低?
  20. linux下配置mysql_linux下安装mysql

热门文章

  1. linux usermod命令
  2. 软件测试基础知识——全
  3. 求大于200的最小质数,java
  4. php织梦模板上传,织梦模板让模型里的图片字段支持本地上传的办法
  5. OpenCV实现图像转换为素描效果
  6. 浏览器兼容性—学习笔记
  7. MacOs M1安装Homebrew 在国内最简单方法
  8. 关于生物发酵工程展(简称:BIO CHINA 2020)举办通知
  9. ajax的验证码发送api接口(侵删)
  10. Python基础学习:numbers模块