本文主要是介绍华为招聘练习--小明的筷子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述: | 小明是个马大哈,某天他到超市买了若干双筷子(小于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;}
}
这篇关于华为招聘练习--小明的筷子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!