Skip to content

Commit fadfb3e

Browse files
committed
feat: add typescript solution to lc problem: No.2251
No.2251.Number of Flowers in Full Bloom
1 parent 014178e commit fadfb3e

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed

Diff for: solution/2200-2299/2251.Number of Flowers in Full Bloom/README.md

+25-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848

4949
<!-- 这里可写通用的实现逻辑 -->
5050

51+
离散差分+离散查询
52+
5153
<!-- tabs:start -->
5254

5355
### **Python3**
@@ -69,7 +71,29 @@
6971
### **TypeScript**
7072

7173
```ts
72-
74+
function fullBloomFlowers(flowers: number[][], persons: number[]): number[] {
75+
// 离散差分
76+
let hashMap = new Map();
77+
for (let [start, end] of flowers) {
78+
end++;
79+
hashMap.set(start, (hashMap.get(start) || 0) + 1);
80+
hashMap.set(end, (hashMap.get(end) || 0) - 1);
81+
}
82+
for (let p of persons) {
83+
if (!hashMap.has(p)) {
84+
hashMap.set(p, 0);
85+
}
86+
}
87+
let keys = Array.from(hashMap.keys()).sort((a, b) => a - b);
88+
let pre = 0;
89+
for (let k of keys) {
90+
pre += hashMap.get(k);
91+
hashMap.set(k, pre);
92+
}
93+
// 离散查询
94+
let ans = persons.map(v => hashMap.get(v));
95+
return ans;
96+
};
7397
```
7498

7599
### **...**

Diff for: solution/2200-2299/2251.Number of Flowers in Full Bloom/README_EN.md

+21-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,27 @@ For each person, we return the number of flowers in full bloom during their arri
5858
### **TypeScript**
5959

6060
```ts
61-
61+
function fullBloomFlowers(flowers: number[][], persons: number[]): number[] {
62+
let hashMap = new Map();
63+
for (let [start, end] of flowers) {
64+
end++;
65+
hashMap.set(start, (hashMap.get(start) || 0) + 1);
66+
hashMap.set(end, (hashMap.get(end) || 0) - 1);
67+
}
68+
for (let p of persons) {
69+
if (!hashMap.has(p)) {
70+
hashMap.set(p, 0);
71+
}
72+
}
73+
let keys = Array.from(hashMap.keys()).sort((a, b) => a - b);
74+
let pre = 0;
75+
for (let k of keys) {
76+
pre += hashMap.get(k);
77+
hashMap.set(k, pre);
78+
}
79+
let ans = persons.map(v => hashMap.get(v));
80+
return ans;
81+
};
6282
```
6383

6484
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function fullBloomFlowers(flowers: number[][], persons: number[]): number[] {
2+
// 离散差分
3+
let hashMap = new Map();
4+
for (let [start, end] of flowers) {
5+
end++;
6+
hashMap.set(start, (hashMap.get(start) || 0) + 1);
7+
hashMap.set(end, (hashMap.get(end) || 0) - 1);
8+
}
9+
for (let p of persons) {
10+
if (!hashMap.has(p)) {
11+
hashMap.set(p, 0);
12+
}
13+
}
14+
let keys = Array.from(hashMap.keys()).sort((a, b) => a - b);
15+
let pre = 0;
16+
for (let k of keys) {
17+
pre += hashMap.get(k);
18+
hashMap.set(k, pre);
19+
}
20+
// 离散查询
21+
let ans = persons.map(v => hashMap.get(v));
22+
return ans;
23+
};

0 commit comments

Comments
 (0)