Skip to content

Commit 30f391b

Browse files
authored
feat: add solutions to lc problems: No.1338,1343 (doocs#937)
1 parent 84b9508 commit 30f391b

File tree

6 files changed

+101
-0
lines changed

6 files changed

+101
-0
lines changed

solution/1300-1399/1338.Reduce Array Size to The Half/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,29 @@ func max(a, b int) int {
161161
}
162162
```
163163

164+
### **TypeScript**
165+
166+
```ts
167+
function minSetSize(arr: number[]): number {
168+
const counter = new Map<number, number>();
169+
for (const v of arr) {
170+
counter.set(v, (counter.get(v) ?? 0) + 1);
171+
}
172+
const t = Array.from(counter.values());
173+
t.sort((a, b) => b - a);
174+
let ans = 0;
175+
let n = 0;
176+
for (const cnt of t) {
177+
n += cnt;
178+
++ans;
179+
if (n * 2 >= arr.length) {
180+
break;
181+
}
182+
}
183+
return ans;
184+
}
185+
```
186+
164187
### **...**
165188

166189
```

solution/1300-1399/1338.Reduce Array Size to The Half/README_EN.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,29 @@ func max(a, b int) int {
145145
}
146146
```
147147

148+
### **TypeScript**
149+
150+
```ts
151+
function minSetSize(arr: number[]): number {
152+
const counter = new Map<number, number>();
153+
for (const v of arr) {
154+
counter.set(v, (counter.get(v) ?? 0) + 1);
155+
}
156+
const t = Array.from(counter.values());
157+
t.sort((a, b) => b - a);
158+
let ans = 0;
159+
let n = 0;
160+
for (const cnt of t) {
161+
n += cnt;
162+
++ans;
163+
if (n * 2 >= arr.length) {
164+
break;
165+
}
166+
}
167+
return ans;
168+
}
169+
```
170+
148171
### **...**
149172

150173
```
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function minSetSize(arr: number[]): number {
2+
const counter = new Map<number, number>();
3+
for (const v of arr) {
4+
counter.set(v, (counter.get(v) ?? 0) + 1);
5+
}
6+
const t = Array.from(counter.values());
7+
t.sort((a, b) => b - a);
8+
let ans = 0;
9+
let n = 0;
10+
for (const cnt of t) {
11+
n += cnt;
12+
++ans;
13+
if (n * 2 >= arr.length) {
14+
break;
15+
}
16+
}
17+
return ans;
18+
}

solution/1300-1399/1343.Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,20 @@ func numOfSubarrays(arr []int, k int, threshold int) (ans int) {
128128
}
129129
```
130130

131+
### **TypeScript**
132+
133+
```ts
134+
function numOfSubarrays(arr: number[], k: number, threshold: number): number {
135+
let s = arr.slice(0, k).reduce((acc, cur) => acc + cur, 0);
136+
let ans = s >= k * threshold ? 1 : 0;
137+
for (let i = k; i < arr.length; ++i) {
138+
s += arr[i] - arr[i - k];
139+
ans += s >= k * threshold ? 1 : 0;
140+
}
141+
return ans;
142+
}
143+
```
144+
131145
### **...**
132146

133147
```

solution/1300-1399/1343.Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold/README_EN.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,20 @@ func numOfSubarrays(arr []int, k int, threshold int) (ans int) {
108108
}
109109
```
110110

111+
### **TypeScript**
112+
113+
```ts
114+
function numOfSubarrays(arr: number[], k: number, threshold: number): number {
115+
let s = arr.slice(0, k).reduce((acc, cur) => acc + cur, 0);
116+
let ans = s >= k * threshold ? 1 : 0;
117+
for (let i = k; i < arr.length; ++i) {
118+
s += arr[i] - arr[i - k];
119+
ans += s >= k * threshold ? 1 : 0;
120+
}
121+
return ans;
122+
}
123+
```
124+
111125
### **...**
112126

113127
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function numOfSubarrays(arr: number[], k: number, threshold: number): number {
2+
let s = arr.slice(0, k).reduce((acc, cur) => acc + cur, 0);
3+
let ans = s >= k * threshold ? 1 : 0;
4+
for (let i = k; i < arr.length; ++i) {
5+
s += arr[i] - arr[i - k];
6+
ans += s >= k * threshold ? 1 : 0;
7+
}
8+
return ans;
9+
}

0 commit comments

Comments
 (0)