プログラミングの美-スーパー投稿「水王」を探して、配列の中で過半数の重複数の検索
最初の簡単なケースは、一人のやつがフォーラムで誰もが返事をして、それはすべての投稿の総量の半分を超えて、急速にこのIDの原文の住所を見つけました: http://www.java2000.net/p11239
実行結果
1
ヒント:この問題の前提は、IDの投稿数が半分を超えていることです.そうしないと、データは意味がありません.
/**
* - " "。<br>
* , 。 ID.
*
* @author ,Java (java2000.net)
*
*/
public class T {
/**
* ID.
*
* @param id
* ID
* @return
*/
public static int find(int[] id) {
int rtn = Integer.MIN_VALUE;
int nTimes, i;
for (i = nTimes = 0; i < id.length; i++) {
if (nTimes == 0) {
rtn = id[i];
nTimes = 1;
} else {
if (rtn == id[i]) {
nTimes++;
} else {
nTimes--;
}
}
}
return rtn;
}
public static void main(String[] args) {
int[] id = { 2, 3, 4, 5, 1, 2, 1, 3, 5, 7, 31, 3, 2, 2, 1, 12, 4, 56, 23, 12, 4, 1, 3, 4,
2, 2, 1, 3, 1, 23, 1, 5, 3, 1, 3, 12, 1, 2, 1, 1, 1, 2, 2, 2 };
System.out.println(find(id));
}
}
実行結果
1
ヒント:この問題の前提は、IDの投稿数が半分を超えていることです.そうしないと、データは意味がありません.