首页 > 2020-8-9老虎集团Java开发工程师
头像
GangBryant
编辑于 2020-08-09 17:28
+ 关注

2020-8-9老虎集团Java开发工程师

1.车站买票
思路:车站上一个人和下一个人可以抵消
最多多少辆车=累加连续的上车人数>0的总人数/每个车的载人数
public int minCarCount(int[][] trips, int capacity) {
        int n = trips.length;
        // 上一个人 下一个人抵消
        Map<Integer, Integer> dict = new TreeMap<>();
        for (int i = 0; i < n; i++) {
            int people = trips[i][0];
            int start = trips[i][1];
            int end = trips[i][2];
            dict.put(start, dict.getOrDefault(start, 0) + people);
            dict.put(end, dict.getOrDefault(start, 0) - people);
        }
        int max = 0, sum = 0;
        for (Map.Entry<Integer, Integer> e : dict.entrySet()) {
            sum += e.getValue();
            max = Math.max(max, sum);
        }
        return max / capacity + (max % capacity == 0 ? 0 : 1);
    }
2.打怪升级
思路:暴力遍历所有可能,可以重复通关
public int maxLevel(int x, int level, int[][] tasks) {
        if (x == 0)
            return level;
        int n = tasks.length;
        int max = 0;
        for (int i = 0; i < n; i++) {
            if (level >= tasks[i][0])
                max = Math.max(max, maxLevel(x - 1, level + tasks[i][1], tasks));
        }
        return max;
    }



全部评论

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

推荐话题

相关热帖

近期热帖

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

近期精华帖

热门推荐