安排課程 LintCode

2021-08-10 14:16:48 字數 802 閱讀 8375

你需要去上n門九章的課才能獲得offer,這些課被標號為 0 到 n-1 。

有一些課程需要「前置課程」,比如如果你要上課程0,你需要先學課程1,我們用乙個匹配來表示他們: [0,1]

給你課程的總數量和一些前置課程的需求,返回你為了學完所有課程所安排的學習順序。

可能會有多個正確的順序,你只要返回一種就可以了。如果不可能完成所有課程,返回乙個空陣列。

樣例:

給定 n = 2, prerequisites = [[1,0]]

返回 [0,1]

給定 n = 4, prerequisites = [1,0],[2,0],[3,1],[3,2]]

返回 [0,1,2,3] or [0,2,1,3]

思路:

拓撲排序。

#ifndef c616_h

#define c616_h

#include

#include

#include

#include

using

namespace

std;

class solution

//將入度為0的節點入隊

for (int i = 0; i < numcourses; ++i)

//將隊頭節點插入到res的開始位置

while (!que.empty())

}if (res.size() < numcourses)

res.clear();

return res;

}};#endif

616 安排課程

2017.9.11 超時超時超時,去死吧 public class solution 建立所有的後序鍊錶。indegree計算所有的節點的入度。int indegree new int numcourses for int x prerequisites 找到乙個入度為0的節點,開始遍歷。int r...

SJTU安排課程表

description 學生需要修讀完所有的課程才能畢業,這些課程之間有先導關係 比如要修讀資料結構,必須先修讀程式設計思想方法 假設任意一門課程可以在任何乙個學期給滿足條件的學生選修,且學生每個學期可以選修的課程數不限。先給出一些課程與課程之間的關係,求能夠修完所有課程的最少學期數。為簡化題目,約...

CAS KG 課程安排

課程目標 教學安排 詳情請見部落格 cas kg 課程安排 1.1 課程簡介 1.2 知識圖譜概述 1.3 知識圖譜與深度學習 2.1 機器學習基礎 2.2 深度學習基礎 2.3 典型深度學習模型 一 2.4 典型深度學習模型 二 3.1 典型圖演算法 3.2 圖匹配演算法 3.3 面向圖結構的隨機...