java实现找数组中重复数字
来源:互联网 发布:通信网络优化培训 编辑:程序博客网 时间:2024/06/01 03:58
package offer;/* * 在长度为n的数组里所有数字都在0~n-1的范围之内。找出数组中的重复数字 * 时间复杂度O(n) 空间复杂度也是O(n) * */public class FindDuplicate1 {public static void main(String[] args) { int numbers[]={0,1,2,3,4,5,1,2,3,6}; findDuplicate(numbers);}static void findDuplicate(int numbers[]){if(numbers==null || numbers.length==0)return ;int numbers2[]=new int[numbers.length];//已经进行了自动的初始化int i=0; for( i=0 ;i<numbers.length;i++) { if(++numbers2[numbers[i]]>1) { System.out.println(numbers[i]); break; } } if(i==numbers.length) System.out.println("No dulicate number");}}
package offer;/** * 时间复杂度O(n) 空间复杂度也是O(1) */public class FindDuplicate {public static void main(String[] args) {int numbers[] = { 0, 1, 2, 3, 4, 5, 1, 2, 3, 6 };findDuplicate(numbers);}static void findDuplicate(int numbers[]) {if (numbers == null || numbers.length == 0)return;int i=0; for(i=0;i<numbers.length;i++) { if(numbers[i]!=i && numbers[numbers[i]]!=numbers[i]) swap(numbers[i],numbers[numbers[i]]); else if(numbers[i]!=i && numbers[numbers[i]]==numbers[i]) { System.out.println(numbers[i]); break; } } if(i==numbers.length) System.out.println("No dulicate number");}static void swap(int number1,int number2){int tmp=number1;number1=number2;number2=tmp;}}
阅读全文
0 0
- java实现找数组中重复数字
- 数组中重复的数字java实现
- 数组中找重复的数字
- 数组中重复的数字(Java实现)
- Java实现找出数组中重复的数字
- 数组中重复的数字 java
- java中查找数组中的重复数字
- 找数组中重复元素
- 数据结构与算法分析笔记与总结(java实现)--数组8:数组中重复的数字
- 寻找数组中的第K大的元素&找数组中重复数字
- <剑指offer 面试题3> 数组中重复的数字(Java实现)
- 编程实现删除数组中在重复数字
- Java实现-删除排序数组中的重复数字1
- Java实现-删除排序数组中的重复数字2
- java 实现二分法查找出数组重复数字
- java 实现递归查找数组中的重复数字
- 数组中重复的数字
- 数组中重复的数字
- 机器学习:k-means算法
- 操作系统--总结几种常见的页面置换算法
- Matlab将.mat文件保存为.txt文件
- 数据类型-C-队列
- Banner无限轮播
- java实现找数组中重复数字
- MySQL explain 详解
- hjr-JAVA工作日记(六):RabbitMQ
- Redis-MISCONF Redis问题解决方法
- Lombok 安装、入门
- 阿里云CentOS7使用yum安装mysql
- 通过路由器U盘读取功能实现外网共享内网文件
- Maven学习总结(九)——使用Nexus搭建Maven私服
- Android开发,禁止AlertDialog点击确定或者取消都自动关闭dialog的情况