问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int a[]=new int[n];
for(int i=0;i<a.length;i++) {
a[i]=in.nextInt();
}
int key=in.nextInt();
System.out.println(getIndex(a,key));
in.close();
}
private static int getIndex(int[] a, int key) {
// TODO Auto-generated method stub
int index=-1;
for(int j=0;j<a.length;j++) {
if(a[j]==key) {
index=j+1;
break;
}else if(j==a.length-1) {
return index;
}
}
return index;
}
}
第一次想到的是利用Arrays的二分查找的方法,Arrays.binarySearch(a, key);但是运行结果不对,查了查,返回值结果取决于二分查找的算法,用这个方法首先要排序,不然结果不确定。