一个数组有100个数,其中有两个是一样的怎么得到那两个数在数组中是第几位
这个要考虑到大量数据操作,必须优化代码
移动面试题哦
谢谢大家帮忙,麻烦给一下代码。
这个要考虑到大量数据操作,必须优化代码
移动面试题哦
谢谢大家帮忙,麻烦给一下代码。
解决方案 »
- 希望大家讨论一下,关于UDP的DatagramPacket的相关问题
- 数组可以放对象,那还要容器干吗?
- 求教数组小程序
- JAVA读xml文件的时候不认\n,无法实现换行,请问该怎么做啊
- 下面的程序程序哪个方法体先执行?m1还是m2?高手分析一下好吗?进来看看
- 华为面试题
- 请教:这个类为什么不可以序列化
- 谁能告诉我本论坛左边树是怎么实现的(用JAVA)?
- 这段代码错在哪儿?谢谢!
- java似乎对我来说没有前途,我做了一个类似于oicq的程序,但是要求客户端必须安装10多兆的java运行环境.java在客户端好象根本没有生存空间可言.而本人却致力于客户端软件的发展.请问专家,我的看法是否正确?
- 算术表达式求解
- switch探究 向高手请教
大致思路:将数组以数字为key,数字所在位置为value放入map,在每次放入之前比较map中的值,如果有相同的停止循环(即已经找出答案)
这里没有考虑map的算法,继续关注lx
直接用map可以解决,而如果是很大型的数据,最好还是借助数据库,或者比较牛点的可以自己建索引也可以,
当数据量很大的时候,索引的作用会体现的尤其突出
public static void main(String[] args) {
Method();
}
public static void Method(){
int a[] = new int[10];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 10);
}
boolean flag=false;
for (int i = 0; i < a.length; i++) {
for (int j = 0; i < a.length; j++) {
if(a[i]==a[j] && i!=j){
flag=true;
System.out.println("数组中存在两个相同的数"+a[i]+"下标分别是:"+i+" "+j);
}
}
}
if( ! flag)
System.out.println("数组中不存在两个相同的数!");
}
}
import java.util.*;public class Test { // 利用Set 的add()方法在放入存在的数时会返回false .
public static void test(int arr[]) {
Set set = new HashSet();
int data = 0;
int index1 = 0;
int index2 = 0;
for(int i=0; i<arr.length; i++) {
boolean b = set.add(arr[i]);
if(!b) { //找到重复的数
data = arr[i];
index2 = i; //第二次出现的位置
for(int j=0; j<arr.length; j++) {
if(arr[j] == arr[i]) {
index1 = j; // 第一次出现的位置
break;
}
}
break;
}
} System.out.println("相同的数是:"+data);
System.out.println("所在位置分别是:"+index1+" , "+index2);
} public static void main(String args[]) {
int arr[] = new int[100];
for(int i=0; i<99; i++) {
arr[i] = i;
}
arr[99] = 88;
test(arr);
}
}