diff --git a/docs/content/docs/array/1365.mdx b/docs/content/docs/array/1365.mdx new file mode 100644 index 0000000..682f920 --- /dev/null +++ b/docs/content/docs/array/1365.mdx @@ -0,0 +1,54 @@ +--- +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 + + + + Constraints: + - 2 <= `nums.length` <= 500 + - 0 <= `nums[i]` <= 100 + + + 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]`. + + + +## 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]); +}; +``` diff --git a/docs/content/docs/index.mdx b/docs/content/docs/index.mdx index a6abba0..e83728a 100644 --- a/docs/content/docs/index.mdx +++ b/docs/content/docs/index.mdx @@ -1,6 +1,6 @@ --- title: Introduction -description: Prad's Random CS Notes +description: Prad's Random Leetcode Notes --- ## Overview diff --git a/docs/content/docs/leetcode/1365.mdx b/docs/content/docs/leetcode/1365.mdx deleted file mode 100644 index 576eb1e..0000000 --- a/docs/content/docs/leetcode/1365.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: LC-1365 -description: How Many Numbers Are Smaller Than the Current Number ---- - -## OverviewProblem solving guide for Technical Interviews - -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]. - -### Examples - -| Control | Purpose | Default | -| ------------------ | --------------------- | -------- | -| `--typeset-size` | Base text size | `1em` | -| `--typeset-leading`| Line height | `1.75` | -| `--typeset-flow` | Space between blocks | `1.25em` | - - -### Constraints