diff --git a/docs/content/docs/leetcode/1365.mdx b/docs/content/docs/leetcode/1365.mdx new file mode 100644 index 0000000..576eb1e --- /dev/null +++ b/docs/content/docs/leetcode/1365.mdx @@ -0,0 +1,19 @@ +--- +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 diff --git a/work/Baton-1/Easy/Array/1365.how-many-numbers-are-smaller-than-the-current-number.js b/work/Baton-1/Easy/Array/1365.how-many-numbers-are-smaller-than-the-current-number.js new file mode 100644 index 0000000..cc02db7 --- /dev/null +++ b/work/Baton-1/Easy/Array/1365.how-many-numbers-are-smaller-than-the-current-number.js @@ -0,0 +1,69 @@ +/* + * 1365. How Many Numbers Are Smaller Than the Current Number + * Difficulty: Easy + * https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/ + * + * ────────────────────────────────────────────────── + * + * 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]. + * + * Return the answer in an array. + * + * + * + * Example 1: + * + * Input: nums = [8,1,2,2,3] + * Output: [4,0,1,1,3] + * Explanation: + * For nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and + * 3). + * For nums[1]=1 does not exist any smaller number than it. + * For nums[2]=2 there exist one smaller number than it (1). + * For nums[3]=2 there exist one smaller number than it (1). + * For nums[4]=3 there exist three smaller numbers than it (1, 2 and 2). + * + * Example 2: + * + * Input: nums = [6,5,4,8] + * Output: [2,1,0,3] + * + * Example 3: + * + * Input: nums = [7,7,7,7] + * Output: [0,0,0,0] + * + * + * + * Constraints: + * + * • 2 <= nums.length <= 500 + * + * • 0 <= nums[i] <= 100 + */ + +/** + * @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/work/Baton-1/Medium/Hash Table/451.sort-characters-by-frequency.js b/work/Baton-1/Medium/Hash Table/451.sort-characters-by-frequency.js new file mode 100644 index 0000000..ac02e30 --- /dev/null +++ b/work/Baton-1/Medium/Hash Table/451.sort-characters-by-frequency.js @@ -0,0 +1,56 @@ +/* + * 451. Sort Characters By Frequency + * Difficulty: Medium + * https://leetcode.com/problems/sort-characters-by-frequency/ + * + * ────────────────────────────────────────────────── + * + * Given a string s, sort it in decreasing order based on the frequency + * of the characters. The frequency of a character is the number of times + * it appears in the string. + * + * Return the sorted string. If there are multiple answers, return any + * of them. + * + * + * + * Example 1: + * + * Input: s = "tree" + * Output: "eert" + * Explanation: 'e' appears twice while 'r' and 't' both appear once. + * So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also + * a valid answer. + * + * Example 2: + * + * Input: s = "cccaaa" + * Output: "aaaccc" + * Explanation: Both 'c' and 'a' appear three times, so both "cccaaa" + * and "aaaccc" are valid answers. + * Note that "cacaca" is incorrect, as the same characters must be + * together. + * + * Example 3: + * + * Input: s = "Aabb" + * Output: "bbAa" + * Explanation: "bbaA" is also a valid answer, but "Aabb" is incorrect. + * Note that 'A' and 'a' are treated as two different characters. + * + * + * + * Constraints: + * + * • 1 <= s.length <= 5 * 10^5 + * + * • s consists of uppercase and lowercase English letters and digits. +*/ + +/** + * @param {string} s + * @return {string} + */ +var frequencySort = function(s) { + +};