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:
2026-06-01 17:22:07 +08:00
parent e798e449bd
commit 1dec88aaf2
198 changed files with 10459 additions and 534 deletions
@@ -1,18 +1,76 @@
#+PROPERTY: STUDY_DECK_02
* TODO 0978. Longest Turbulent Subarray :medium:
:PROPERTIES:
:NEETCODE: [[file:../../roadmap.org::*0978. Longest Turbulent Subarray][Roadmap]]
:NEETCODE: [[file:../../roadmap.org::*0978. Longest Turbulent Subarray][0978. Longest Turbulent Subarray]]
:END:
Given an integer array ~arr~, return /the length of a maximum size turbulent subarray of/ ~arr~.
A subarray is *turbulent* if the comparison sign flips between each adjacent pair of elements in the subarray.
More formally, a subarray ~[arr[i], arr[i + 1], ..., arr[j]]~ of ~arr~ is said to be turbulent if and only if:
- For ~i <= k < j~:
- ~arr[k] > arr[k + 1]~ when ~k~ is odd, and
- ~arr[k] < arr[k + 1]~ when ~k~ is even.
- Or, for ~i <= k < j~:
- ~arr[k] > arr[k + 1]~ when ~k~ is even, and
- ~arr[k] < arr[k + 1]~ when ~k~ is odd.
*Example 1:*
#+begin_src
Input: arr = [9,4,2,10,7,8,8,1,9]
Output: 5
Explanation: arr[1] > arr[2] < arr[3] > arr[4] < arr[5]
#+end_src
*Example 2:*
#+begin_src
Input: arr = [4,8,12,16]
Output: 2
#+end_src
*Example 3:*
#+begin_src
Input: arr = [100]
Output: 1
#+end_src
*Constraints:*
- ~1 <= arr.length <= 4 * 10^{4}~
- ~0 <= arr[i] <= 10^{9}~
** TODO Approach
Write your approach here.
** TODO Python
#+begin_src python
class Solution:
def maxTurbulenceSize(self, arr: List[int]) -> int:
#+end_src
** TODO C++
#+begin_src cpp
class Solution {
public:
int maxTurbulenceSize(vector<int>& arr) {
}
};
#+end_src