forked from tangweikun/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.ts
37 lines (33 loc) · 866 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
export function findRestaurant(arr1: string[], arr2: string[]) {
let res: string[] = []
let min = Infinity
const commonRestaurant = getCommonRestaurant(arr1, arr2)
commonRestaurant.forEach((value, key) => {
if (value === min) {
res.push(key)
}
if (value < min) {
res = [key]
min = value
}
})
return res
}
const getCommonRestaurant = (arr1: string[], arr2: string[]) => {
const hash = new Map()
const temp = new Map()
for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
if (hash.has(arr1[i]) || hash.has(arr2[i])) {
temp.set(arr1[i], i + hash.get(arr1[i]))
temp.set(arr2[i], i + hash.get(arr2[i]))
} else {
if (arr1[i] === arr2[i]) {
temp.set(arr1[i], i * 2)
} else {
hash.set(arr1[i], i)
hash.set(arr2[i], i)
}
}
}
return temp
}