美文网首页程序员
力扣 207 课程表

力扣 207 课程表

作者: zhaojinhui | 来源:发表于2020-11-23 23:47 被阅读0次

题意:给一组课程,里边有修课的先后顺序,查看能否把所有的课修完

思路: 把课程想成有向图,先修的课是出度,后修的课是入度

  1. 用map记录每一个节点连接的出度节点们
  2. 用in记录每一个节点的入度
  3. 把入度为0的放到队列中
  4. 遍历队列,每次pop一个节点,计数加一,
  5. 遍历它连接的节点,并把每一个节点的入度减一,把入度为0的加入队列
  6. 查看cnt和课程数是否相等

思想:拓扑排序

复杂度:时间O(n),空间O(n)

class Solution {
    public boolean canFinish(int numCourses, int[][] p) {
        int[] in = new int[numCourses];
        Map<Integer, List<Integer>> map = new HashMap();
        
        for(int i=0;i<p.length;i++) {
            in[p[i][0]]++;
            List<Integer> temp = map.getOrDefault(p[i][1], new ArrayList<Integer>());
            temp.add(p[i][0]);
            map.put(p[i][1], temp);
        }
        
        Queue<Integer> q = new LinkedList<Integer>();
        for(int i=0;i<numCourses;i++) {
            if(in[i] == 0)
                q.add(i);
        }
        int cnt = 0;
        while(!q.isEmpty()) {
            int cur = q.poll();
            cnt++;
            if(map.containsKey(cur)) {
                for(int i: map.get(cur)) {
                    in[i]--;
                    if(in[i] == 0) {
                        q.add(i);
                    }
                }
            }
        }
        
        return cnt == numCourses;
    }
}

相关文章

  • LeetCode 207. 课程表 | Python

    207. 课程表 题目来源:力扣(LeetCode)https://leetcode-cn.com/problem...

  • 力扣207——课程表

    这道题主要利用拓扑排序,判断该图是否有环,其中还会涉及到邻接矩阵。 原题 现在你总共有 n 门课需要选,记为 0 ...

  • 力扣 207 课程表

    题意:给一组课程,里边有修课的先后顺序,查看能否把所有的课修完 思路: 把课程想成有向图,先修的课是出度,后修的课...

  • LeetCode-207-课程表

    LeetCode-207-课程表 207. 课程表[https://leetcode-cn.com/problem...

  • LeetCode 207. 课程表

    1、题目 课程表 - 力扣(LeetCode) https://leetcode-cn.com/problems/...

  • 力扣(LeetCode) - 207 课程表(图的深度优先搜索|

    本题就是判断有向图中是否有环,可以通过深度优先搜索或拓扑排序来解决。 一、题目 现在你总共有 n 门课需要选,记为...

  • 77. 组合/207. 课程表

    77. 组合 相关标签:回溯算法 207. 课程表 相关标签: DFS BFS 图 拓扑排序

  • 207.课程表!

    本题是一道拓扑排序的问题,个人感觉难度还是挺大的,即便写出来也感觉有些似懂非懂。另外我个人认为本题并没有使用传统的...

  • 207. 课程表

    完全考察拓扑排序的。

  • 207. 课程表

    解法 深度优先遍历解法 广度优先解法

网友评论

    本文标题:力扣 207 课程表

    本文链接:https://www.haomeiwen.com/subject/mruhiktx.html