京东418笔试,第一题长方体,这样可以100%嘛?

//构成长方体最基本的可以想到:三对长宽,并且只能有长宽高三个数才可以;
//将三对长宽和三个数都放进去set,保证唯一性,set的大小是3才可以,并且任意一个set大于3肯定是不可以的;
//再考虑,只有一个数字,那这样是正方体,set大小是1;
//再考虑,有两个数字,这时候分两种情况:第一种不可以:(2,6)(2,6)(2,2) (2,2)(2,2)(2,2),第二种可以:(2,6)(2,6)(2,6) (2,6)(2,2)(2,2)
//所以这个时候就是,长宽相等的这一组的数量必须是2,不相等的必须是4才可以构成长方体。

import java.util.HashMap;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main0418 {
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		
		//HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
		//int flag = 1;
		boolean[] res = new boolean[T];
		for(int i=0; i<T; i++)
		{
			Set<Integer> set1 = new HashSet<Integer>();
			Set<String> set2 = new HashSet<String>();
			HashMap<String, Integer> map = new HashMap<String, Integer>();
			int[][] nums = new int[6][2];
			int index1 = 0;
			int index2 = 0;
			for(int j=0; j<6; j++)
			{
				int a = sc.nextInt();
				int b = sc.nextInt();
				nums[j][0] = Math.min(a, b);
				nums[j][1] = Math.max(a, b);
				set1.add(nums[j][0]);
				set1.add(nums[j][1]);
				set2.add("(" + nums[j][0] + "," + nums[j][1] + ")");
				Integer temp = map.get("(" + nums[j][0] + "," + nums[j][1] + ")");
				if(temp == null)
				{
					map.put("(" + nums[j][0] + "," + nums[j][1] + ")", 1);
				}
				else 
				{
					map.put("(" + nums[j][0] + "," + nums[j][1] + ")", temp+1);	
					if(temp > 2)
					{
						index1 = nums[j][0];
						index2 = nums[j][1];
					}
				}
			}
			if(set1.size() > 3 || set2.size() > 3) res[i] = false;			
			if(set1.size() == 1) res[i] = true;
			if(set1.size() == 2)
			{
				if(index1 != index2) res[i] = true;
				else res[i] = false;				
			}

		}
		sc.close();
		for(int i=0; i<T; i++)
		{
			if(res[i] == true) System.out.println("POSSIBLE");
			else System.out.println("IMPOSSIBLE");
		}
	}
}

#京东##笔试题目#
全部评论
那如果case是(1,1),(1,1),(2,2),(2,2),(3,3),(3,3)呢?应该需要对一个面的长和另一个面的宽加约束吧
点赞 回复 分享
发布于 2020-04-19 09:00

相关推荐

zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
是每个人事都这样与找工作的人这样沟通吗?正常询问不可以吗
超时空记忆丶:这种人适合跟我聊 我能骂得她心里难受一天,这种byd一看就是欠骂,这么好的机会楼主别错过。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务