feat: populate note files with problem descriptions and code stubs
Add populate-notes.mjs that fetches problem descriptions and Python/C++ code stubs from LeetCode's GraphQL API. Populated all 197 NeetCode 150 note files with: - Problem description (examples, constraints) - Python code stub (function signature) - C++ code stub (function signature + includes) API responses cached in leetcode/.cache/leetcode/ for instant re-runs.
This commit is contained in:
@@ -1,18 +1,69 @@
|
||||
#+PROPERTY: STUDY_DECK_02
|
||||
* TODO 0802. Find Eventual Safe States :medium:
|
||||
:PROPERTIES:
|
||||
:NEETCODE: [[file:../../roadmap.org::*0802. Find Eventual Safe States][Roadmap]]
|
||||
:NEETCODE: [[file:../../roadmap.org::*0802. Find Eventual Safe States][0802. Find Eventual Safe States]]
|
||||
:END:
|
||||
|
||||
There is a directed graph of ~n~ nodes with each node labeled from ~0~ to ~n - 1~. The graph is represented by a *0-indexed* 2D integer array ~graph~ where ~graph[i]~ is an integer array of nodes adjacent to node ~i~, meaning there is an edge from node ~i~ to each node in ~graph[i]~.
|
||||
|
||||
A node is a *terminal node* if there are no outgoing edges. A node is a *safe node* if every possible path starting from that node leads to a *terminal node* (or another safe node).
|
||||
|
||||
Return /an array containing all the *safe nodes* of the graph/. The answer should be sorted in *ascending* order.
|
||||
|
||||
*Example 1:*
|
||||
|
||||
|
||||
#+begin_src
|
||||
Input: graph = [[1,2],[2,3],[5],[0],[5],[],[]]
|
||||
Output: [2,4,5,6]
|
||||
Explanation: The given graph is shown above.
|
||||
Nodes 5 and 6 are terminal nodes as there are no outgoing edges from either of them.
|
||||
Every path starting at nodes 2, 4, 5, and 6 all lead to either node 5 or 6.
|
||||
#+end_src
|
||||
|
||||
|
||||
*Example 2:*
|
||||
|
||||
|
||||
#+begin_src
|
||||
Input: graph = [[1,2,3,4],[1,2],[3,4],[0,4],[]]
|
||||
Output: [4]
|
||||
Explanation:
|
||||
Only node 4 is a terminal node, and every path starting at node 4 leads to node 4.
|
||||
#+end_src
|
||||
|
||||
|
||||
*Constraints:*
|
||||
|
||||
- ~n == graph.length~
|
||||
|
||||
- ~1 <= n <= 10^{4}~
|
||||
|
||||
- ~0 <= graph[i].length <= n~
|
||||
|
||||
- ~0 <= graph[i][j] <= n - 1~
|
||||
|
||||
- ~graph[i]~ is sorted in a strictly increasing order.
|
||||
|
||||
- The graph may contain self-loops.
|
||||
|
||||
- The number of edges in the graph will be in the range ~[1, 4 * 10^{4}]~.
|
||||
|
||||
** TODO Approach
|
||||
Write your approach here.
|
||||
|
||||
** TODO Python
|
||||
#+begin_src python
|
||||
|
||||
class Solution:
|
||||
def eventualSafeNodes(self, graph: List[List[int]]) -> List[int]:
|
||||
#+end_src
|
||||
|
||||
** TODO C++
|
||||
#+begin_src cpp
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
vector<int> eventualSafeNodes(vector<vector<int>>& graph) {
|
||||
|
||||
}
|
||||
};
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user