上机题目(初级)-小明的筷子(Java)

题目如下:

代码如下:

package huawei;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Demo {

	public static int checkChopsticks(int[] chopsticks) {
		/*
		 * map的key作为筷子的长度,value作为筷子的个数
		 */
		Map<Integer, Integer> hm = new HashMap<Integer, Integer>();
		int count = 0;
		for (int i = 0; i < chopsticks.length; i++) {
			if (hm.containsKey(chopsticks[i])) {
				count = hm.get(chopsticks[i]) + 1;//筷子个数加1
			} else {
				count = 1;
			}
			hm.put(chopsticks[i], count);
		}

		for (int i = 0; i < chopsticks.length; i++) {
			if (hm.get(chopsticks[i]) % 2 == 0) {
				continue;
			} else if (hm.get(chopsticks[i]) % 2 != 0) {
				return chopsticks[i];
			}

		}
		return -1;
	}

	public static void main(String[] agrs) {

		Scanner cin = new Scanner(System.in);
		String input = cin.nextLine();
		String[] string = input.split(",");
		int[] inputInt = new int[string.length];
		for (int i = 0; i < string.length; i++) {
			inputInt[i] = Integer.parseInt(string[i]);
		}

		int n = checkChopsticks(inputInt);

		System.out.println(n);

	}

}
时间: 2024-08-03 09:22:34

上机题目(初级)-小明的筷子(Java)的相关文章

2015华为机试——小明的筷子

题目描述: 小明是个马大哈,某天他到超市买了若干双筷子(n<20)筷子的长度不尽相同,他把全部筷子都放在购物袋里面拿回家,路上不小心漏了一根 请你用程序帮他找出是漏掉的筷子是多长的. 输入:  剩下的筷子数组,如:1, 2, 3, 2, 1, 3, 2 返回值:漏掉的筷子长度,如上述输入返回:2(当输入的筷子数据异常时返回-1,如:找不到漏掉的筷子) 解题思路:使用HashMap对筷子的种类与数量进行键值对匹配存储,当出现重复筷子时,对应的筷子数量+1,然后遍历一次HashMap,获取筷子的数量

HDOJ 题目4521 小明系列问题——小明序列(LIC增强版)

小明系列问题--小明序列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2021    Accepted Submission(s): 618 Problem Description 大家都知道小明最喜欢研究跟序列有关的问题了,可是也就因为这样,小明几乎已经玩遍各种序列问题了.可怜的小明苦苦地在各大网站上寻找着新的序列问题,可是找来找

小明搬家_NOI导刊2010提高(05)

题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太低了,于是总结出了提高效率的方法. 大家的速度都是每分钟上(或下)一层楼.所有向上走的人手中都拿一个箱子,所有向下走的人手中都不拿箱子.到达第N层立刻放下箱子向下走,到达第1层立刻拿起箱子向上走.当一个人向上走,另一人向下走而在楼道里相遇时,向上走的人将手中的箱子交给另一人,两人同时反向.即原来拿箱子向上走的

杭电 4506 小明系列故事——师兄帮帮忙【快速幂取模】

题目:小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹.这不,班里唯一的女生又拿一道数学题来请教小明,小明当然很高兴的就接受了.不过等他仔细读题以后,发现自己也不会做,这下小明囧了:如果回复说自己不懂,岂不是很没面子? 所以,他现在私下求你帮忙解决这道题目,题目是这样的: 给你n个数字,分别是a1,a2,a3,a4,a5……an,这些数字每过一个单位时间就会改变,假设上一个单位时间的数字为a1’,a2’,a

【动态规划】开心的小明

贵有恒,何必三更起五更眠:最无益,莫过一日曝十日寒. [动态规划]开心的小明 时间限制: 1 Sec  内存限制: 128 MB提交: 20  解决: 10[提交][状态][讨论版] 题目描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N 元钱就行”.今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元.于是,他把每件物品规定了一个重要度,分

SDUT 2766 小明传奇2

小明传奇2 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 小明不但创建了自己的商店而且选择了建立了自己的货币系统. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 小明想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+

hdu 5421 小明系列问题——小明序列(LIS最长上升子序列)

1 /***************************************************** 2 题目: 小明系列问题——小明序列(hdu 4521) 3 链接: http://acm.hdu.edu.cn/showproblem.php?pid=4521 4 算法: LIS最长上升子序列 5 6 ******************************************************/ 7 #include<cstdio> 8 #include<

一些项目——小明的惩罚

题目描述 小明和小慧吵架了,小明想见小慧并请求得到原谅.小慧给了小明两个数m和n(1<m<1000  和 m<n<2000 ),在m到n之间的素数中(范围包含m和n),相邻两个素数差的最大值就是小慧决定不见小明的天数,小明非常想知道几天后才能见到小慧,聪明的你帮帮小明吗? 输入 输入m和n 输出 相邻两个素数差的最大值 样例输入 10 30 样例输出 6 提示 10和30之间的素数有 11 13 17 19 23 29 ,相邻两个素数差的最大值是29-23 = 6 解答 #incl

nyoj 19-擅长排列的小明(STL-next_permutation())

19-擅长排列的小明 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:10 submit:16 题目描述: 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长.现在需要你写一个程序来验证擅长排列的小明到底对不对. 输入描述: 第一行输入整数N(1<N<10)表示多少组测试数据, 每组测试数据第一行两个整数 n m (