【Leetcode】398. Random Pick Index

来源:互联网 发布:直播间礼物系统源码 编辑:程序博客网 时间:2024/05/18 03:18

题目链接:https://leetcode.com/contest/4/problems/random-pick-index/

题目:

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.

思路:

easy。。。这题为什么会被放到contest? 是有时间、空间复杂度更低的解法吗?

算法

    int []nums;    public Solution(int[] nums) {        this.nums = nums;    }           Random r = new Random();public int pick(int target) {ArrayList<Integer> idxs = new ArrayList<Integer>();for(int i=0;i<nums.length;i++){    if(target==nums[i]){        idxs.add(i);    }}return idxs.get(r.nextInt(idxs.size()));}


0 0
原创粉丝点击