广联达4/27笔试
5.19更新 已收到offer
 达子是真能处啊,有offer他是真发,还没去实习呢就拿到秋招offer了,蛮开心
 ————————————
 广联达给我一种做银行笔试题的感觉,技术选择题20道,类似公务员行测的选择题40道,外加一道编程。
 就讨论一下编程题吧,题目大概意思是有一个面试官,有m个面试者,每个面试者有一个想面试的时间段[start, end],然后问你面试官在[1, n]时间段内最多能面试多少个人。
 大概思路就是贪心,将所有面试者的时间段按结束时间从小到大排序,结束时间一样的话按开始时间从小到大排。
 排序完之后就遍历,贪心的选择下一个可行的时间段就行了。代码如下:
 import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] times = new int[n][2];
        for(int i = 0; i < n; i++){
            times[i][0] = sc.nextInt();
        }
        for(int i = 0; i < n; i++){
            times[i][1] = sc.nextInt();
        }
        Arrays.sort(times, (o1, o2) -> {
            if(o1[1] == o2[1]){
                return o1[0] - o2[0];
            }else{
                return o1[1] - o2[1];
            }
        });
        int res = 1;
        int end = times[0][1];
        for(int i = 1; i < n; i++){
            if(times[i][0] > end){
                end = times[i][1];
                res++;
            }
        }
        System.out.println(res);
    }
}
      
查看18道真题和解析