zoom第一题 dfs+ hashmap

import java.util.*;

public class test {
    static int sum = 0;
    public static void main(String[] args) {

        int[] visited = new int[5];
        HashMap<Integer,List<Integer>> map = new HashMap<>();
        map.put(0,new ArrayList<Integer>(Arrays.asList(2)));
        map.put(3,new ArrayList<>(Arrays.asList(2,1,4)));
        map.put(4,new ArrayList<>(Arrays.asList(3)));
        map.put(1,new ArrayList<>(Arrays.asList(3)));
        map.put(2,new ArrayList<>(Arrays.asList(0,3)));
        
        String s = "RRRBB";
        visited[0] = 1;

        if(s.charAt(0)=='R'){
            sum = 1;
            dfs(0,map,s,1,visited);
        }else{
            sum = -1;
            dfs(0,map,s,-1,visited);

        }
        System.out.println(sum);
    }

    public static void dfs(int c, HashMap<Integer,List<Integer>> map, String s, int cn, int[] visited){
        List list = map.get(c);

        visited[c] = 1;
        for(int i=0;i<list.size();i++){
            int q = (int)list.get(i);
            if(visited[q]==1) continue;
            visited[q] = 1;
            if(s.charAt(q)=='R'){
                cn ++;
                sum = sum + cn;
                dfs(q,map,s,cn,visited);
                cn --;
            }else{
                cn--;
                sum = sum + cn;
                dfs(q,map,s,cn,visited);
                cn ++;
            }

        }
    }
}
全部评论
欢迎指正
点赞 回复 分享
发布于 2022-08-10 21:12
佬再写个第二题吧
点赞 回复 分享
发布于 2022-08-10 21:38

相关推荐

点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务