• (面试)将1到100的随机数插入到长度为100的数组中,保证不会有重复元素


    题目:将1到100的随机数插入到长度为100的数组中,保证不会有重复元素

    ---方案一:使用set集合,可以保证set中不会有重复元素,当set大小为100时,退出循环;

                   获取1--100随机数方法有 : int a = (int)(Math.random()*100+1); 或 int a = new Random().nextInt(100);

    ---方案二:每次添加随机数到数组时,都检测原数组是否已经存在此元素

    ---方案三:生成1--100的链表LinkedList(也可以用数组,但是删除操作麻烦,不如链表),随机数范围是1--99,指定的是链表的元素索引位置;

                  这样每次生成一个随机索引对应的元素,就放到一个100长度的数组中;并且从原来的链表中除去随机索引对应的元素 && 同时随机数生成范围改为1--98;

                 以此类推,直到目标数组元素个数为100为止。

    比较分析:通常方案1,2都不能确定程序什么时候退出,因为要等随机到1--100中所有的元素才能满足退出,导致的问题可能是执行好久,

                 并且不可预知、不可控。

                 方案3很好,能够快速执行,因为它每次去一个随机数,就从原来的列表中删除且随机返回也相应减一;

                        

  • 相关阅读:
    day20
    day19
    day18
    day17
    day16
    day14 HTML
    day7课程
    day6
    python-day4
    python-day3
  • 原文地址:https://www.cnblogs.com/qqzy168/p/3261462.html
Copyright © 2020-2023  润新知