docs(docs): migrate to array based folder structure

This commit is contained in:
Prad Nukala committed 2026-07-14 11:07:15 -04:00
1 parent a7f9fc28e0
commit 172bdcf40e
24 files changed
+64 -2914

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
---
title: LC-1365
description: How Many Numbers Are Smaller Than the Current Number
---
## Examples
| Input | Output |
| ---------------- | -------------------- |
| `[8,1,2,2,3]` | `[4,0,1,1,3]` |
| `[6,5,4,8]` | `[2,1,0,3]` |
| `[7,7,7,7]` | `[0,0,0,0]` |
## Hints
<Accordions type="single">
<Accordion title="Constraints">
Constraints:
• `2 <= nums.length <= 500`
• `0 <= nums[i] <= 100`
</Accordion>
<Accordion title="Problem Statement">
Given the array nums, for each `nums[i]` find out how many numbers in the array are smaller than it.
That is, for each `nums[i]` you have to count the number of valid `j`'s such that `j != i` and `nums[j] < nums[i]`.
</Accordion>
</Accordions>
## Solution
```js
/**
* @param {number[]} nums
* @return {number[]}
*/
var smallerNumbersThanCurrent = function (nums) {
// Default for Hammer
const freq = {};
for (let n of nums) freq[n] = (freq[n] || 0) + 1;
const sorted = Object.keys(freq).sort((a, b) => a - b);
// Problem Specific
let count = 0;
let smaller = {};
// Iterate over sorted.
for (let num of sorted) {
smaller[num] = count;
count += freq[num];
}
// Map output
return nums.map((n) => smaller[n]);
};
```
+46
View File
@@ -0,0 +1,46 @@
---
title: LC-1636
description: Sort Array by Increasing Frequency
---
## Examples
| Input | Output |
| ---------------------- | ---------------------- |
| `[1,1,2,2,2,3]` | `[3,1,1,2,2,2]` |
| `[2,3,1,3,2]` | `[1,3,3,2,2]` |
| `[-1,1,-6,4,5,-6,1,4,1]` | `[5,-1,4,4,-6,-6,1,1,1]` |
## Hints
<Accordions type="single">
<Accordion title="Constraints">
Constraints:
• `1 <= nums.length <= 100`
• `-100 <= nums[i] <= 100`
</Accordion>
<Accordion title="Problem Statement">
Given an array of integers nums, sort the array in increasing order based on the frequency of the values.
If multiple values have the same frequency, sort them in decreasing order.
Return the sorted array.
</Accordion>
</Accordions>
## Solution
```js
/**
* @param {number[]} nums
* @return {number[]}
*/
var frequencySort = function (nums) {
// Default for Hammer
const freq = {};
for (let n of nums) freq[n] = (freq[n] || 0) + 1;
// Problem Specific
// Sort ascending by frequency; ties break by larger value first
return nums.sort((a, b) => freq[a] - freq[b] || b - a);
};
```
+53
View File
@@ -0,0 +1,53 @@
---
title: LC-347
description: Top K Frequent Elements
---
## Examples
| Input | Output |
| ---------------------------------- | -------- |
| `nums = [1,1,1,2,2,3], k = 2` | `[1,2]` |
| `nums = [1], k = 1` | `[1]` |
| `nums = [1,2,1,2,1,2,3,1,3,2], k = 2` | `[1,2]` |
## Hints
<Accordions type="single">
<Accordion title="Constraints">
Constraints:
• `1 <= nums.length <= 10^5`
• `-10^4 <= nums[i] <= 10^4`
• `k` is in the range `[1, the number of unique elements in the array]`
• It is guaranteed that the answer is unique.
</Accordion>
<Accordion title="Problem Statement">
Given an integer array nums and an integer `k`, return the `k` most frequent elements.
You may return the answer in any order.
Follow up: Your algorithm's time complexity must be better than `O(n log n)`, where n is the array's size.
</Accordion>
</Accordions>
## Solution
```js
/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
var topKFrequent = function (nums, k) {
// Default for Hammer
const freq = {};
for (let n of nums) freq[n] = (freq[n] || 0) + 1;
// Problem Specific
// Sort unique values by descending frequency, take the first k
return Object.keys(freq)
.map(Number)
.sort((a, b) => freq[b] - freq[a])
.slice(0, k);
};
```