mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
55 lines
2.8 KiB
HTML
55 lines
2.8 KiB
HTML
<p>You are given an integer <code>n</code>, which indicates that there are <code>n</code> courses labeled from <code>1</code> to <code>n</code>. You are also given an array <code>relations</code> where <code>relations[i] = [prevCourse<sub>i</sub>, nextCourse<sub>i</sub>]</code>, representing a prerequisite relationship between course <code>prevCourse<sub>i</sub></code> and course <code>nextCourse<sub>i</sub></code>: course <code>prevCourse<sub>i</sub></code> has to be taken before course <code>nextCourse<sub>i</sub></code>. Also, you are given the integer <code>k</code>.</p>
|
|
|
|
<p>In one semester, you can take <strong>at most</strong> <code>k</code> courses as long as you have taken all the prerequisites in the <strong>previous</strong> semester for the courses you are taking.</p>
|
|
|
|
<p>Return <em>the <strong>minimum</strong> number of semesters needed to take all courses</em>. The testcases will be generated such that it is possible to take every course.</p>
|
|
|
|
<p> </p>
|
|
<p><strong>Example 1:</strong></p>
|
|
|
|
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2020/05/22/leetcode_parallel_courses_1.png" style="width: 300px; height: 164px;" /></strong></p>
|
|
|
|
<pre>
|
|
<strong>Input:</strong> n = 4, dependencies = [[2,1],[3,1],[1,4]], k = 2
|
|
<strong>Output:</strong> 3
|
|
<strong>Explanation:</strong> The figure above represents the given graph.
|
|
In the first semester, you can take courses 2 and 3.
|
|
In the second semester, you can take course 1.
|
|
In the third semester, you can take course 4.
|
|
</pre>
|
|
|
|
<p><strong>Example 2:</strong></p>
|
|
|
|
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2020/05/22/leetcode_parallel_courses_2.png" style="width: 300px; height: 234px;" /></strong></p>
|
|
|
|
<pre>
|
|
<strong>Input:</strong> n = 5, dependencies = [[2,1],[3,1],[4,1],[1,5]], k = 2
|
|
<strong>Output:</strong> 4
|
|
<strong>Explanation:</strong> The figure above represents the given graph.
|
|
In the first semester, you can take courses 2 and 3 only since you cannot take more than two per semester.
|
|
In the second semester, you can take course 4.
|
|
In the third semester, you can take course 1.
|
|
In the fourth semester, you can take course 5.
|
|
</pre>
|
|
|
|
<p><strong>Example 3:</strong></p>
|
|
|
|
<pre>
|
|
<strong>Input:</strong> n = 11, dependencies = [], k = 2
|
|
<strong>Output:</strong> 6
|
|
</pre>
|
|
|
|
<p> </p>
|
|
<p><strong>Constraints:</strong></p>
|
|
|
|
<ul>
|
|
<li><code>1 <= n <= 15</code></li>
|
|
<li><code>1 <= k <= n</code></li>
|
|
<li><code>0 <= relations.length <= n * (n-1) / 2</code></li>
|
|
<li><code>relations[i].length == 2</code></li>
|
|
<li><code>1 <= prevCourse<sub>i</sub>, nextCourse<sub>i</sub> <= n</code></li>
|
|
<li><code>prevCourse<sub>i</sub> != nextCourse<sub>i</sub></code></li>
|
|
<li>All the pairs <code>[prevCourse<sub>i</sub>, nextCourse<sub>i</sub>]</code> are <strong>unique</strong>.</li>
|
|
<li>The given graph is a directed acyclic graph.</li>
|
|
</ul>
|