그림 의 깊이 우선 스 트 리밍 알고리즘

1379 단어 #버클
1. 제목 설명
너 는 이번 학기 에 반드시 numCourse 과목 을 선택 과목 으로 이수 해 야 한다. 0 도착 하 다 numCourse-1 。
어떤 과목 을 선택 과목 으로 이수 하기 전에 먼저 과목 을 이수 해 야 한다. 예 를 들 어 학습 과정 0 을 하려 면 먼저 과정 1 을 완성 해 야 한다. 우 리 는 일치 하 는 것 으로 그들 을 표시 한다. [0, 1]
주어진 과정의 총량 과 그들의 선 결 조건 을 정 하고 모든 과정의 학습 을 완성 할 수 있 는 지 판단 해 주 십시오.
 
예시 1:
입력: 2, [1, 0]  출력: true 설명: 모두 두 과목 이 있다.학습 과정 1 전에 너 는 수업 0 을 완성 해 야 한다.그 러 니까 가능 해.예시 2:
입력: 2, [1, 0], [0, 1] 출력: false 해석: 모두 두 과목 이 있다.학습 과정 1 전에 당신 은 먼저 과정 0 을 완성 해 야 합 니 다.그리고 수업 0 을 배우 기 전에 수업 1 을 먼저 완성 해 야 합 니 다.그 럴 리 가 없어.
출처: 스냅 백 (LeetCode) 링크:https://leetcode-cn.com/problems/course-schedule 저작권 은 인터넷 에 귀속 된다.상업 전 재 는 정부 에 연락 하여 권한 을 부여 해 주 십시오. 비 상업 전 재 는 출처 를 밝 혀 주 십시오.
 
2. 알고리즘
class Solution {
    List> graph;
    int[] visit;// 1    ;0   ;-1   
    boolean res=true;
    public boolean canFinish(int numCourses, int[][] prerequisites) {
        graph=new ArrayList>();
        visit=new int[numCourses];
        for(int i=0;i());
        }
        for(int[] tmp:prerequisites){
            graph.get(tmp[1]).add(tmp[0]);
        }
        for(int i=0;i

좋은 웹페이지 즐겨찾기