(面試)將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很好,能夠快速執行,因為它每次去一個隨機數,就從原來的列表中刪除且隨機返回也相應減一;

                    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM