算法(输出一个数组中的重复数,(并非全部重复数))
2018-01-04 22:48
274 查看
数组长度为n+1,元素范围1-n,输出一个重复的数。
public class TheSameNumber1 { private int theSameNumber(int[] a) { int b[]=new int[a.length]; for (int index=0;index<a.length;index++) { b[index]=0; } int i,n; i=0; n=a.length; while (i<n){ if(a[i]!=i){ int j=a[i]; if(b[j]==0) b[j]=a[i]; else return b[j]; i++; } else{ i++; } } return -1; } public static void main(String []args){ int []a={3,2,1,1,4}; TheSameNumber1 n=new TheSameNumber1(); int k=n.theSameNumber(a); if(k>-1) { System.out.println("重复数字为:"+k); }else System.out.println("无重复数字!"); } }
相关文章推荐
- 算法((输出一个数组中出现的第一个重复数字)
- java__给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度
- 函数调用输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放。
- 输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放
- 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数
- 【算法】给定一个数组,除了一个数出现1次之外,其余数都出现3次,输出出现一次的那个数。
- 【每天算法1】:用java 语言实现,输入一个数,就相应地输出的几维数组
- 设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝。
- 算法题(一)--找出数组中第k大的数并输出其下标(数组中的数有重复)
- 一个有序数组(包含重复的),去除重复的数字然后输出
- 算法题 -- 输入一个Long数组,按要求输出一个等长的Long数组
- C++[算法]给定一个具有100个元素的数组,请对该数组随机赋值1-100,不能出现重复的值
- 【算法】寻找数组中出现的唯一重复的一个数
- 编一个程序,输入10个整数,并放在数组中,先降序输出全部的数,再统计并输出当中正数、负数和零的个数
- 删除数组中重复出现的元素,只留下一个,排序后输出
- 随机输出完一个有序的数组,不能有重复输出
- 对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。算法提示:将整数的各位数分解到一维整型数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。
- java不重复的随机输出数组中的全部数据(做更新)
- 一个有序的数组中,删除重复出现的元素,输出不再重复出现的元素个数
- 算法随机在一定范围内(min-max)选出m个不重复的数据放到一个数组中