• 398. 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.

    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);
    class Solution {
        List<Integer> indlist;
        List<Integer> numlist;
        public Solution(int[] nums) {
            indlist = new ArrayList();
            numlist = new ArrayList();
            for(int i: nums) numlist.add(i);
        }
        
        public int pick(int target) {
            for(int i = 0; i < numlist.size(); i++){
                if(target == numlist.get(i)) indlist.add(i);
            }
            int le = indlist.size();
            int res = 0;
            Random r = new Random();
            return indlist.get(r.nextInt(le));
        }
    }

    Random r = new Random()

    r.nextInt(m) return an integer from [0, m)

  • 相关阅读:
    7.微软AJAX的解决方案
    6.投票系统
    5.JSON
    4.无刷新评论
    3.输入商品名称后自动弹出其价格示例
    2.JQuery AJAX
    1.AJAX简介
    网站优化
    防抖和节流
    在地址栏输入一次地址会发生什么
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13035402.html
Copyright © 2020-2023  润新知