查找重复数字2
来源:互联网 发布:telnet 80端口不通 编辑:程序博客网 时间:2024/06/07 00:13
题设:现有0到99,共计100个整数,各不相同,将所有数放入一个数组,随机排布。数组长度100,将其中任意一个数替换成0到99另一个数(唯一重复的数字)。
问题:将这个重复的数字找出来。
【初始化条件】
int[] arr = new int[100];for(int i =0;i<arr.length;i++){arr[i] = i;}//打乱数组的排列顺序for(int x = 1;x<=10000;x++){//随机排列int num1 = (int)(Math.random()*100);int num2 = (int)(Math.random()*100);//arr[num1]arr[num2] 两个数据互换位置int temp = arr[num1];arr[num1] = arr[num2];arr[num2] = temp;}//将其中一个替换成另一个int n1 = (int)(Math.random()*100);int n2 = (int)(Math.random()*100);while(n1 == n2){n1 = (int)(Math.random()*100);}//将随机的n2位置的值换成n1位置的值arr[n1] = arr[n2];for(int i = 0;i<arr.length;i++){System.out.print(arr[i]+"\t");}System.out.println("--------------");
【方法】
//算法://1.创建一个辅助的数组空间,里面的数据元素全是0//*****在解决方案中使用了全新的数组,用于赋值解决问题//*****这个数组是需要消耗内存空间的,但是由于它的出现//*****加速了重复数据的查找速度,因此速度提高了,但是//*****内存被浪费了一些int[] newArr = new int[100];//2.循环原始数组,使用里面的数据做为新数组的下标,进行自加for(int i = 0;i<arr.length;i++){newArr[arr[i]]++;if(newArr[arr[i]] == 2){//当前下标对应的数据就是你要找的数据System.out.println(arr[i]);break;}}
0 0
- 查找重复数字2
- 重复数字查找
- 查找出重复数字
- 数组中重复的数字和查找
- 查找数组中重复的数字
- java中查找数组中的重复数字
- 在101个数字中查找重复数字
- 查找最大的不重复数,查找大于给定数字的最小不重复数
- 乱序查找int数组中重复的数字
- 查找数组中重复次数最多的数字
- java 实现二分法查找出数组重复数字
- java 实现递归查找数组中的重复数字
- LeetCode--Find the Duplicate Number(查找重复数字)Python
- leetcode 编程题 系列 (二分查找)旋转数组的查找、重复数字 33 153
- 数字查找
- 查找数字
- 离散题目2(查找重复元素)
- 我写的:用游标实现:查找重复数据并将重复数据加自动增长数字
- CodeForces-131A-cAPS lOCK
- java网络编程—读取html存储到文件中
- Sqrt(x)
- C++实现将十进制数转换为小于等于九的任意进制
- 在32位处理器上指针的长度为4字节,为什么是4字节,而不是16字节,或者32字节
- 查找重复数字2
- android 自定义button
- 把二元查找树转变成排序的双向链表
- kmp算法的实现
- hdu2023求品均成绩
- CodeBlock 快捷键大全
- strcpy和memcpy的区别
- linux中pid gid tgid tid的区别和联系
- leetcode 之 Jump Game