docs(docs): add study decks, new reference pages, and fix header image path

This commit is contained in:
Prad Nukala
2026-08-19 13:05:47 -04:00
parent e14763c585
commit e23d90cb82
11 changed files with 136 additions and 16 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
<p align="center">
<img alt="header" src=".github/assets/dependency-spine.svg" />
<img alt="header" src=".public/dependency-spine.svg" />
</p>
<p align="center">
@@ -63,3 +63,9 @@ Random access in this context means that you can access an element at any index
</Columns>
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="arrays-and-strings" />
+6
View File
@@ -28,3 +28,9 @@ Appending to the end of a list is amortized O(1) time complexity. This means tha
Random access in this context means that you can access an element at any index in constant time.
:::
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="hashing" />
+6
View File
@@ -28,3 +28,9 @@ Appending to the end of a list is amortized O(1) time complexity. This means tha
Random access in this context means that you can access an element at any index in constant time.
:::
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="binary-search" />
+6
View File
@@ -12,3 +12,9 @@ This page is a scaffold. Notes, canonical problems, and template code are not wr
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="two-pointers" />
+6
View File
@@ -6,3 +6,9 @@ description: 'Precomputed cumulative state for O(1) range queries.'
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="prefix-sum" />
+6
View File
@@ -6,3 +6,9 @@ description: 'Two pointers plus incremental state between them.'
:::warning[Under construction]
This page is a scaffold. Notes, canonical problems, and template code are not written yet.
:::
## Study deck
Drill the essentials — click the deck, then use the arrow keys.
<StudyDeck deck="sliding-window" />
+45
View File
@@ -0,0 +1,45 @@
---
title: '344. Reverse String'
description: Write a function that reverses a string. The input string is given as an array of characters s
sidebar:
badge: 'Easy'
---
<Badge variant="accent">Two Pointers</Badge>
:::warning
You must do this by modifying the input array in-place with O(1) extra memory.
:::
### Example 1:
- Input: `s = ["h","e","l","l","o"]`
- Output: `["o","l","l","e","h"]`
### Example 2:
- Input: `s = ["H","a","n","n","a","h"]`
- Output: `["h","a","n","n","a","H"]`
### Constraints:
- `1 <= s.length <= 10^5`
- `s[i]` is a printable ascii character.
## Solution
```js
/**
* @param {character[]} s
* @return {void} Do not return anything, modify s in-place instead.
*/
var reverseString = function(s) {
let i = 0;
let j = s.length - 1;
while (i < j) {
[s[i], s[j]] = [s[j], s[i]];
j--;
i++;
}
};
```
@@ -0,0 +1,54 @@
---
title: '977. Squares of a Sorted Array'
description: Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order
sidebar:
badge: 'Easy'
---
<Badge variant="accent">Two Pointers</Badge>
::::warning
Squaring each element and sorting the new array is very trivial, could you find an O(n) solution using a different approach?
::::
### Example 1:
- Input: `nums = [-4,-1,0,3,10]`
- Output: `[0,1,9,16,100]`
- Explanation: After squaring, the array becomes `[16,1,0,9,100]`. After sorting, it becomes `[0,1,9,16,100]`.
### Example 2:
- Input: `nums = [-7,-3,2,3,11]`
- Output: `[4,9,9,49,121]`
### Constraints:
- `1 <= nums.length <= 10^4`
- `-10^4 <= nums[i] <= 10^4`
- `nums` is sorted in non-decreasing order.
## Solution
```js
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortedSquares = function(nums) {
let n = nums.length;
let ans = new Array(nums.length);
let left = 0, right = nums.length - 1;
for (let i = n -1; i >= 0; i--){
let square;
if(Math.abs(nums[left]) < Math.abs(nums[right])){
square = nums[right];
right--;
}else{
square = nums[left];
left++;
}
ans[i] = square*square;
}
return ans;
};
```
@@ -1,10 +0,0 @@
---
title: '344. Reverse String'
sidebar:
badge: 'Easy'
---
<Badge variant="accent">Two Pointers</Badge>
<Badge>[Source](https://leetcode.com/problems/reverse-string/)</Badge>
## Description
@@ -1,5 +0,0 @@
---
sidebar:
icon: code
badge: '977'
---