Content-Length: 476152 | pFad | http://github.com/DigbijayNayak/leetcode-javascript/commit/5f86aa77a148709c945e318edac865eac492dbcc

4A feat: add No.1481 · DigbijayNayak/leetcode-javascript@5f86aa7 · GitHub
Skip to content

Commit 5f86aa7

Browse files
committed
feat: add No.1481
1 parent b951e28 commit 5f86aa7

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# 1481. Least Number of Unique Integers after K Removals
2+
3+
- Difficulty: Medium.
4+
- Related Topics: Array, Hash Table, Greedy, Sorting, Counting.
5+
- Similar Questions: .
6+
7+
## Problem
8+
9+
Given an array of integers `arr` and an integer `k`. Find the **least number of unique integers** after removing **exactly** `k` elements**.**
10+
11+
12+
13+
14+
 
15+
Example 1:
16+
17+
```
18+
Input: arr = [5,5,4], k = 1
19+
Output: 1
20+
Explanation: Remove the single 4, only 5 is left.
21+
```
22+
Example 2:
23+
24+
```
25+
Input: arr = [4,3,1,1,3,3,2], k = 3
26+
Output: 2
27+
Explanation: Remove 4, 2 and either one of the two 1s or three 3s. 1 and 3 will be left.
28+
```
29+
30+
 
31+
**Constraints:**
32+
33+
34+
35+
- `1 <= arr.length <= 10^5`
36+
37+
- `1 <= arr[i] <= 10^9`
38+
39+
- `0 <= k <= arr.length`
40+
41+
42+
## Solution 1
43+
44+
```javascript
45+
/**
46+
* @param {number[]} arr
47+
* @param {number} k
48+
* @return {number}
49+
*/
50+
var findLeastNumOfUniqueInts = function(arr, k) {
51+
var map = {};
52+
for (var i = 0; i < arr.length; i++) {
53+
map[arr[i]] = (map[arr[i]] || 0) + 1;
54+
}
55+
var nums = Array.from(Object.values(map));
56+
nums.sort((a, b) => a - b);
57+
while (k > 0 && nums.length && k >= nums[0]) {
58+
k -= nums.shift();
59+
}
60+
return nums.length;
61+
};
62+
```
63+
64+
**Explain:**
65+
66+
Sort.
67+
68+
**Complexity:**
69+
70+
* Time complexity : O(n * log(n)).
71+
* Space complexity : O(n).
72+
73+
## Solution 2
74+
75+
```javascript
76+
/**
77+
* @param {number[]} arr
78+
* @param {number} k
79+
* @return {number}
80+
*/
81+
var findLeastNumOfUniqueInts = function(arr, k) {
82+
var map = {};
83+
var nums = Array(arr.length + 1).fill(0);
84+
for (var i = 0; i < arr.length; i++) {
85+
if (map[arr[i]] === undefined) {
86+
map[arr[i]] = 1;
87+
} else {
88+
nums[map[arr[i]]] -= 1;
89+
map[arr[i]] += 1;
90+
}
91+
nums[map[arr[i]]] += 1;
92+
}
93+
var num = 0;
94+
for (var j = 0; j < nums.length; j++) {
95+
if (k > 0) {
96+
var tmp = nums[j];
97+
nums[j] = Math.max(0, nums[j] - Math.floor(k / j));
98+
k -= tmp * j;
99+
}
100+
num += nums[j];
101+
}
102+
return num;
103+
};
104+
```
105+
106+
**Explain:**
107+
108+
Counting sort.
109+
110+
**Complexity:**
111+
112+
* Time complexity : O(n).
113+
* Space complexity : O(n).
114+

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/DigbijayNayak/leetcode-javascript/commit/5f86aa77a148709c945e318edac865eac492dbcc

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy