Title: #1224 - Maximum Equal Frequency - LeetCode JavaScript Solutions
Open Graph Title: #1224 - Maximum Equal Frequency - LeetCode JavaScript Solutions
X Title: #1224 - Maximum Equal Frequency - LeetCode JavaScript Solutions
Description: Given an array nums of positive integers, return the longest possible length of an array prefix of nums, such that it is possible to remove ...
Open Graph Description: Given an array nums of positive integers, return the longest possible length of an array prefix of nums, such that it is possible to remove ...
X Description: Given an array nums of positive integers, return the longest possible length of an array prefix of nums, such that it is possible to remove ...
Keywords:
Opengraph URL: https://leetcodejavascript.com/solutions/maximum-equal-frequency
Domain: leetcodejavascript.com
{"@context":"https://schema.org","@type":"Code","url":"https://leetcodejavascript.com/solutions/maximum-equal-frequency","name":"#1224 - Maximum Equal Frequency - LeetCode JavaScript Solutions","description":"Given an array nums of positive integers, return the longest possible length of an array prefix of nums, such that it is possible to remove ...","programmingLanguage":"JavaScript","codeRepository":"https://github.com/JoshCrozier/leetcode-javascript","codeSampleType":"JavaScript","text":"/**\n * @param {number[]} nums\n * @return {number}\n */\nvar maxEqualFreq = function(nums) {\n const countMap = new Map();\n const freqMap = new Map();\n let result = 0;\n\n for (let i = 0; i < nums.length; i++) {\n const num = nums[i];\n const prevCount = countMap.get(num) || 0;\n const newCount = prevCount + 1;\n\n countMap.set(num, newCount);\n\n if (prevCount > 0) {\n freqMap.set(prevCount, (freqMap.get(prevCount) || 0) - 1);\n if (freqMap.get(prevCount) === 0) freqMap.delete(prevCount);\n }\n freqMap.set(newCount, (freqMap.get(newCount) || 0) + 1);\n\n if (freqMap.size === 1) {\n const [freq, occurrences] = [...freqMap.entries()][0];\n if (freq === 1 || occurrences === 1) result = i + 1;\n } else if (freqMap.size === 2) {\n const freqs = [...freqMap.keys()].sort((a, b) => a - b);\n if (freqs[0] === 1 && freqMap.get(freqs[0]) === 1) result = i + 1;\n if (freqs[1] === freqs[0] + 1 && freqMap.get(freqs[1]) === 1) result = i + 1;\n }\n }\n\n return result;\n};","keywords":"LeetCode 1224, #1224 - Maximum Equal Frequency, Hard, JavaScript solution","learningResourceType":"Code","isAccessibleForFree":true,"educationalLevel":"intermediate","interactivityType":"mixed"}
| author | LeetCodeJavascript.com |
| og:type | article |
| og:image | https://leetcodejavascript.com/og-image.jpg |
| og:site_name | LeetCode JavaScript Solutions |
| twitter:card | summary_large_image |
| twitter:url | https://leetcodejavascript.com/solutions/maximum-equal-frequency |
| twitter:image | https://leetcodejavascript.com/og-image.jpg |
| twitter:creator | @joshcrozier |
| theme-color | #1f2937 |
Links:
| LeetCodeJavascript.com | https://leetcodejavascript.com/ |
| Star on GitHub | https://github.com/JoshCrozier/leetcode-javascript |
| Back to all solutions | https://leetcodejavascript.com |
| View on LeetCode | https://leetcode.com/problems/maximum-equal-frequency/ |
| View on GitHub | https://github.com/JoshCrozier/leetcode-javascript/blob/master/solutions/1224-maximum-equal-frequency.js |
| Array | https://leetcodejavascript.com/tags/array |
| Hash Table | https://leetcodejavascript.com/tags/hash-table |
| Josh Crozier | https://joshcrozier.com |
Viewport: width=device-width, initial-scale=1.0
Robots: index, follow