zoukankan      html  css  js  c++  java
  • leetcode(207)课程表

    课程表

    解题思路:拓扑排序(实际上就是贪心算法)

    class Solution {
        public boolean canFinish(int numCourses, int[][] prerequisites) {
            int len = prerequisites.length;
            if(len==0){
                return true;
            }
            int[] degree = new int[numCourses];
            for(int[] p : prerequisites){
                degree[p[0]]++;
            }
            LinkedList<Integer> list = new LinkedList<>();
            List<Integer> res = new ArrayList<>();
            for(int i=0;i<numCourses;i++){
                if(degree[i]==0){
                    list.addLast(i);
                }
            }
            int temp = 0;
            while(!list.isEmpty()){
                temp = list.removeFirst();
                res.add(temp);
                for(int[] p : prerequisites){
                    if(p[1]==temp){
                        degree[p[0]]--;
                        if(degree[p[0]]==0){
                            list.addLast(p[0]);
                        }
                    }
                }
            }
            return res.size()==numCourses;
        }
    }
  • 相关阅读:
    抽象类
    类初始化
    final关键字
    super关键字
    继承
    常用类

    封装
    方法重载
    031:Cetus sharding
  • 原文地址:https://www.cnblogs.com/erdanyang/p/11155589.html
Copyright © 2011-2022 走看看