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

简介: <p><span style="white-space:pre"></span>前几天参加阿里笔试,有道程序题大意是这样的,从1到1000生成900个不重复的随机数并打印出来。当时做了好久,勉强做出来了,和大家分享一下,如果您有更好的方法,望不吝赐教。</p> <p>我的思路是:</p> <p>1.定义数组arr存入随机数;</p> <p>2.用Arrays.binarySearch

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

我的思路是:

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

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

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

4.Arrays.binarySearch()需要对数组排序,所以得复制一个相同的数组来排序并检测是否包含新随机数,不然最后生成的随机数就只有450个了,其余全部是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的随机数a
			Arrays.sort(arr2);//排序后才能用binarySearch()方法
			int result = Arrays.binarySearch(arr2, a);// 查看数组arr2中是否有a
			if (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]);
	}
}

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

 祝君好运!

目录
相关文章
|
Kubernetes Cloud Native 安全
一文彻底搞懂 Container
设想一下,在我们的日常项目开发过程中,存在一个应用服务,其使用一些基础库函数并具有某些依赖项。如果我们在不支持这些依赖项的环境平台上运行此应用程序,那么,我们可能会遇到意外错误。随着 DevOps 及云原生理念的注入,我们希望我们所开发的应用程序能够可以跨多个操作系统及平台正常运行。
2078 0
|
JSON 运维 JavaScript
教你如何快速接入微信消息通知,使用消息推送服务,「传息」推送消息到个人微信
教你如何快速接入微信消息通知,使用消息推送服务,「传息」推送消息到个人微信
2361 0
|
机器学习/深度学习 数据采集 人工智能
人工智能与机器学习的前景和挑战
人工智能和机器学习的前景是令人振奋的,它们在许多领域带来了创新和变革。然而,随着前景的广阔,也伴随着一些挑战,如数据质量、隐私和伦理问题。通过持续的研究和努力,我们有望克服这些挑战,实现人工智能和机器学习的更大潜力。从自动驾驶汽车到医疗诊断,从自然语言处理到工业自动化,人工智能和机器学习将继续塑造我们的世界。
1054 1
人工智能与机器学习的前景和挑战
|
移动开发 数据可视化 小程序
高颜值可视化设计UNIAPP源码生成器
高颜值可视化设计UNIAPP源码生成器
224 1
阿里云com域名多少钱一年?注册续费和转入价格来了
阿里云com域名多少钱一年?阿里云企业新用户注册com域名1元首年,个人新用户注册com域名价格是33元首年,阿里云老用户注册com域名价格为69元一年,com域名第二年续费使用优惠口令后价格为69元一年。新手站长来详细说下阿里云com域名注册、续费、转入收费标准及活动报价
3660 0
阿里云com域名多少钱一年?注册续费和转入价格来了
|
JSON 关系型数据库 数据库
|
存储 缓存 NoSQL
社交网络场景下大规模图存储实践——Facebook TAO
社交网络场景下大规模图存储实践——Facebook TAO
433 0
社交网络场景下大规模图存储实践——Facebook TAO
【Python刷题记录】Day1-选择题
整形变量x中存放了一个两位数,要将这个两位数的个位数的个位数字和十位数字交换位置,例如,13变成31,正确的Python表达式是什么?
Vue3.js中使用svg:vite-plugin-svg-icons
Vue3.js中使用svg:vite-plugin-svg-icons
990 0
|
数据可视化 算法 测试技术
都996了,研发效能还是提不起来,关键在这里
上一篇我们介绍了研发效能提升目标及其度量方法。(本文是阿里“研发效能提升系列”的第2篇,第1篇“研发效能的定义和度量”敬请期待【下周三】的钉钉群直播:钉钉搜索群号 23192180) 研发效能的提升必须落实为团队需求、协作和工程技术等实践。
6744 1
都996了,研发效能还是提不起来,关键在这里