首页 > 【笔经】【老虎】
头像
我,1个five罢了
编辑于 2020-08-10 16:18
+ 关注

【笔经】【老虎】

选择题
1.知道树的中序和后序 求前序
忘得差不多了,反正不难,就是分值大,5分一道
编程题
1.汽车载客trips = {{2,1,4}{4,2,6}},capacity = 5 输出 = 2
trips[i][0]是乘客数量,trips[i][1]是上车地点,trips[i][2]是下车地点。capacity是车的最大容量,求最少需要多少车?
按照上车时间从小到大排序。创建一个优先队列,按照最早的下车时间进队的,看上车的人数是不是超过capacity,超过就count++。AC!
public int minCarCount (int[][] trips, int capacity){
        Arrays.sort(trips, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) {
            return o1[1] - o2[1];
        }
        });
        int count = 1;
        PriorityQueue<int[]> q = new PriorityQueue<>(new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) {
            return o1[2] - o2[2];
        }
        });
        int sum = 0;
        for (int i = 0; i < trips.length; i++) {
            boolean flag = true;
            while(q.size() > 0 && flag){
                int[] t = q.peek();
                if(trips[i][1] >= t[2]){
                    int[] temp = q.poll();
                    sum -= temp[0];
                }
                else  flag = false;
            }
            q.add(trips[i]);
            sum += trips[i][0];
            if(sum > capacity){
                count++;
            }
        }
        return count;
    }


2.打怪,level = 1,level表示初始层级,x = 2,x表示需要做的任务数,  tasks={{0,1},{1,2},{1,3}} 只有level>=tasks[i][0],level才能+=tasks[i][1],求level最大是多少?
没做完。感觉也是用贪心来做。

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐