算法练习-002-返回一个set数组

 

1
2
3
题目描述:
写一个函数,它的作用是接受一个整数(假设为num),返回一个数组,数组的长度为num,
数组中的内容为随机的0至(num-1)的值,并且不能重复。比如num为5的话,数组可能是[1,0,3,2,4]。

  

 

这道题目感觉很简单,先给出一种方案,可能有更好的方案。

方案1:

复制代码
public  int[] setArray(int number){
        Random random = new Random();
        Map<Integer, Integer> map = new HashMap<>();
        int array[] = new int[number];
        for (int i = 0; i < number; i++) {
            int n = random.nextInt(number);
            while(map.containsKey(n)){
                n = random.nextInt(number);
            }
            map.put(n, n);
            array[i]= n;
        }
        return array;
    }
复制代码

 

1
2
3
测试: 输入number = 10000    用时13ms
 
      输入number = 100000   用时123ms

  

 

 

posted @   斑马森林  阅读(350)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示