阿里笔试-从1到1000生成900个不重复的随机数并打印出来

来源:互联网 发布:朱炫大师兄 知乎 编辑:程序博客网 时间:2024/05/19 23:59

前几天参加阿里笔试,有道程序题大意是这样的,从1到1000生成900个不重复的随机数并打印出来。当时做了好久,勉强做出来了,和大家分享一下,如果您有更好的方法,望不吝赐教。

我的思路是:

1.定义数组arr存入随机数;

2.用Arrays.binarySearch()搜索数组中是否包含新生成的的随机数;

3.不包含则将新随机数存进数组,包含则不添加;

4.Arrays.binarySearch()需要对数组排序,所以得复制一个相同的数组(一个素组亦可)来排序并检测是否包含新随机数,不然最后生成的随机数就只有450个(不足900个)了,其余全部是0。这里重点是要排序。

代码如下

import java.util.*;public class test1 {public static void main(String[] args) {int[] arr = new int[900];// 创建2个数组int[] arr2=new int[900];for (int i = 899; i >=0; i--) {int a = (int) ((Math.random()) * 1001);// 生成1到1000的随机数aArrays.sort(arr2);//排序后才能用binarySearch()方法int result = Arrays.binarySearch(arr2, a);// 查看数组arr2中是否有aif (result < 0) {// 没有a就把a加入数组arr[i] = a;arr2[i]=a;} else// 有a就把i加1,使i值不变i++;}for (int i = 0; i < 900; i++)System.out.println("第" + (i + 1) + "个: " + arr[i]);}}

此题用Map或者HashSet更佳!


如果您有任何问题,欢迎留言。

 祝君好运!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3岁宝宝不写作业怎么办 小孩不写作业怎么办呀 作业没写完的人怎么办? 孩子不写作业家长该怎么办 做作业做得慢怎么办 高一作业写得慢怎么办 孩子做作业不认真怎么办 孩子不主动做作业怎么办 写作业静不下心怎么办 小孩不写作业怎么办啊 小孩子写作业爱磨蹭怎么办 孩子在学校不写作业怎么办 鳗鱼刺卡在喉咙怎么办 被小鱼刺卡住了怎么办 喉咙上卡了鱼刺怎么办 跟团出去受伤了怎么办 平安易宝冻结了怎么办 车的保险到期没有交怎么办 人保外地险出险怎么办 婚姻经营不下去了怎么办 他不爱我,我该怎么办 没有我你怎么办钢琴版 没有你怎么办严爵歌词 没有羊毛戳针该怎么办 没有我你该怎么办歌词 雌激素低子宫内膜薄怎么办 没有我你怎么办的句子 没有我你怎么办百度云 何润东没有我你怎么办 想你了我该怎么办 没有你日子我该怎么办 没有我你怎么办mp3下载 如果没有你,我该怎么办 我该怎么办韩剧插曲 没有我你怎么办微盘 歌曲没有你我该怎么办 uc看小说收费了怎么办 发财树黄叶掉叶怎么办 5个月猫咪嘴巴臭怎么办 灿盛入伍柳岩怎么办 手机电用得快怎么办