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,118 @@
|
||||
#+PROPERTY: STUDY_DECK_02
|
||||
* TODO 0155. Min Stack :medium:
|
||||
:PROPERTIES:
|
||||
:NEETCODE: [[file:../../roadmap.org::*0155. Min Stack][Roadmap]]
|
||||
:NEETCODE: [[file:../../roadmap.org::*0155. Min Stack][0155. Min Stack]]
|
||||
:END:
|
||||
|
||||
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
|
||||
|
||||
Implement the ~MinStack~ class:
|
||||
|
||||
- ~MinStack()~ initializes the stack object.
|
||||
|
||||
- ~void push(int val)~ pushes the element ~val~ onto the stack.
|
||||
|
||||
- ~void pop()~ removes the element on the top of the stack.
|
||||
|
||||
- ~int top()~ gets the top element of the stack.
|
||||
|
||||
- ~int getMin()~ retrieves the minimum element in the stack.
|
||||
|
||||
You must implement a solution with ~O(1)~ time complexity for each function.
|
||||
|
||||
*Example 1:*
|
||||
|
||||
|
||||
#+begin_src
|
||||
Input
|
||||
["MinStack","push","push","push","getMin","pop","top","getMin"]
|
||||
[[],[-2],[0],[-3],[],[],[],[]]
|
||||
|
||||
Output
|
||||
[null,null,null,null,-3,null,0,-2]
|
||||
|
||||
Explanation
|
||||
MinStack minStack = new MinStack();
|
||||
minStack.push(-2);
|
||||
minStack.push(0);
|
||||
minStack.push(-3);
|
||||
minStack.getMin(); // return -3
|
||||
minStack.pop();
|
||||
minStack.top(); // return 0
|
||||
minStack.getMin(); // return -2
|
||||
#+end_src
|
||||
|
||||
|
||||
*Constraints:*
|
||||
|
||||
- ~-2^{31} <= val <= 2^{31} - 1~
|
||||
|
||||
- Methods ~pop~, ~top~ and ~getMin~ operations will always be called on *non-empty* stacks.
|
||||
|
||||
- At most ~3 * 10^{4}~ calls will be made to ~push~, ~pop~, ~top~, and ~getMin~.
|
||||
|
||||
** TODO Approach
|
||||
Write your approach here.
|
||||
|
||||
** TODO Python
|
||||
#+begin_src python
|
||||
class MinStack:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
|
||||
def push(self, val: int) -> None:
|
||||
|
||||
|
||||
def pop(self) -> None:
|
||||
|
||||
|
||||
def top(self) -> int:
|
||||
|
||||
|
||||
def getMin(self) -> int:
|
||||
|
||||
|
||||
|
||||
# Your MinStack object will be instantiated and called as such:
|
||||
# obj = MinStack()
|
||||
# obj.push(val)
|
||||
# obj.pop()
|
||||
# param_3 = obj.top()
|
||||
# param_4 = obj.getMin()
|
||||
#+end_src
|
||||
|
||||
** TODO C++
|
||||
#+begin_src cpp
|
||||
class MinStack {
|
||||
public:
|
||||
MinStack() {
|
||||
|
||||
}
|
||||
|
||||
void push(int val) {
|
||||
|
||||
}
|
||||
|
||||
void pop() {
|
||||
|
||||
}
|
||||
|
||||
int top() {
|
||||
|
||||
}
|
||||
|
||||
int getMin() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Your MinStack object will be instantiated and called as such:
|
||||
* MinStack* obj = new MinStack();
|
||||
* obj->push(val);
|
||||
* obj->pop();
|
||||
* int param_3 = obj->top();
|
||||
* int param_4 = obj->getMin();
|
||||
*/
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user