描述: | 小明是个马大哈,某天他到超市买了若干双筷子(小于20) |
输入: | 第一行:非负的整数, 剩下的筷子的根数; 例如:7 建议:读入输入的整数的时候,不要读入换行符('\n') |
输出: | 漏掉的筷子的长度,如上述输入返回:2 当输入的数据异常时输出-1,如:找不到漏掉的筷子 备注:如果漏掉了多根筷子,返回任意一根漏掉的筷子即可。 输出整数后,不需要输出换行符。 |
样例输入: | 7 1 2 3 2 1 3 2 |
样例输出: | 2 |
编程代码:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
try{
int num = input.nextInt();
String line ="";
int[] leg;
while((line=input.nextLine())!= null && !(line=input.nextLine()).equals(' ')){
String text = line.replace('\n',' ').trim();
String[] tem = text.split(" ");
leg = new int[tem.length];
for(int i=0;i<leg.length;i++){
leg[i] = Integer.parseInt(tem[i]);
}
if((num == leg.length) && (num<20) && (num % 2 != 0) && (num > 0)) {
System.out.println(checkChopsticks(leg));
break;
}else {
System.out.println(-1);
break;
}
}
}catch (Exception e){
System.out.println(-1);
}
}
private static int checkChopsticks(int[] chopsticks){
Map<Integer,Integer> tt = new HashMap<Integer, Integer>();
int count = 0;
for(int i =0;i<chopsticks.length;i++){
if (tt.containsKey(chopsticks[i])){
count = tt.get(chopsticks[i])+1;
}else {
count = 1;
}
tt.put(chopsticks[i],count);
}
for(int i =0;i<chopsticks.length;i++){
if (tt.get(chopsticks[i])%2==0){
continue;
}else if (tt.get(chopsticks[i])%2!=0){
return chopsticks[i];
}
}
return -1;
}
}