京东笔试
第一题,只过了82,考虑的比较简单,因为长方体是对称的,所以查看是不是小于等于三条不重复的边,如果是则是,如果不是则不能构成正方体。
package SiumCode.Exam; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main01 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); for(int i =0;i<n;i++){ Set<Integer> set = new HashSet<>(); for(int j=0;j<12;j++){ set.add(in.nextInt()); } if(set.size()<=3){ System.out.println("POSSIBLE"); }else { System.out.println("IMPOSSIBLE"); } } } }第二题是查看同一时刻重复区间最多有多少,这个值就是结果。
package SiumCode.Exam; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main02 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()){ int t = in.nextInt(); int[] start = new int[t]; Set<Integer> set = new HashSet<>(); int[] end = new int[t]; for(int i=0;i<t;i++){ start[i] = in.nextInt(); //set.add(in.nextInt()); end[i] = in.nextInt(); } int count = 0; for(int i=0;i<t;i++){ int temp = 0; for (int j=0;j<t;j++){ if(i==j){ continue; }else { if((start[j] >= start[i] && start[j] <= end[i]) || (end[j]>=start[i]&&end[j]<end[i])){ temp++; } } count = Math.max(count,temp); } } System.out.println(count+1); } } }这是第二题的解析链接:https://www.jianshu.com/p/3948fda91d3d