力扣每日一题:2477. 到达首都的最少油耗(2023-12-05)

力扣每日一题
题目:2477. 到达首都的最少油耗

力扣每日一题:2477. 到达首都的最少油耗(2023-12-05)_第1张图片
日期:2023-12-05
用时:34 m 15 s
时间:37ms
内存:84.8MB
思路:分别计算每条路上通过的城市数量(数量/座位数,向上取整),然后求和,这里每条路上通过的城市数量实际就是图中每个节点的子节点数量。
代码:

class Solution {
    public long minimumFuelCost(int[][] roads, int seats) {
        int size = roads.length+1;
        List<Integer>[] list = new ArrayList[size];
        for(int i=0;i<size;i++){
            list[i] = new ArrayList<>();
        }
        for(int[] road:roads){
            int num1 = road[0];
            int num2 = road[1];
            list[num1].add(num2);
            list[num2].add(num1);
        };
        dfs(0,-1,list,seats);
        return sum;
    }
    long sum = 0;
    private int dfs(int start,int end,List<Integer>[] list,int seats){
        int cnt =1;
        for(int num: list[start]){
            if(num!=end){
                cnt+=dfs(num,start,list,seats);
            }
        }
        if(start>0){
            sum+=(cnt-1)/seats+1;
        }
        return cnt;
    }
}

你可能感兴趣的:(力扣每日一题,leetcode,算法)