您的位置:首页 > 其它

华为机试练习---找出数组中的"支配者"

2014-08-31 16:46 218 查看
package interview;

import java.util.Arrays;
import java.util.Scanner;

/**
* 找出一个数组中的"支配者":即出现频率超过一半的数
* @author USER
*
*/
public class FindDominator {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String string = in.nextLine();
String[] s = string.split(" ");
int[] a = new int[s.length];
for (int i = 0; i < a.length; i++) {
a[i] = Integer.parseInt(s[i]);
}

int m = dominator(a);
if (m == -1) {
System.out.println("no dominator");
}else {
System.out.println("the dominator is:"+m);
}
}

private static int dominator(int[] a) {
// TODO Auto-generated method stub
Arrays.sort(a);//对数组排序,是升序,便于查找相同的数.注意Arrays.sort()排序是按字符的ASCII码值排序的
int count = 1;
for (int i = 0; i < a.length-1; i++) {
if (a[i] == a[i+1]) {
count++;
if ((double)count / a.length > 0.5) {
return a[i];
}
}else {
count = 1;
}
}
return -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐