Skip to content

Commit 7895a5f

Browse files
committed
feat: update solutions to lcp problem: No.62
1 parent a9bada9 commit 7895a5f

File tree

6 files changed

+52
-8
lines changed

6 files changed

+52
-8
lines changed

lcp/LCP 62. 交通枢纽/README.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,11 @@ class Solution:
6868
ind = Counter()
6969
outd = Counter()
7070
s = set()
71+
vis = set()
7172
for a, b in path:
73+
if (a, b) in vis:
74+
continue
75+
vis.add((a, b))
7276
s.add(a)
7377
s.add(b)
7478
outd[a] += 1
@@ -89,12 +93,15 @@ class Solution {
8993
int[] ind = new int[1001];
9094
int[] outd = new int[1001];
9195
Set<Integer> s = new HashSet<>();
96+
Set<Integer> vis = new HashSet<>();
9297
for (int[] p : path) {
9398
int a = p[0], b = p[1];
94-
s.add(a);
95-
s.add(b);
96-
ind[b]++;
97-
outd[a]++;
99+
if (vis.add(a * 1000 + b)) {
100+
s.add(a);
101+
s.add(b);
102+
ind[b]++;
103+
outd[a]++;
104+
}
98105
}
99106
for (int c : s) {
100107
if (ind[c] == s.size() - 1 && outd[c] == 0) {
@@ -115,8 +122,13 @@ public:
115122
int ind[1001]{};
116123
int outd[1001]{};
117124
unordered_set<int> s;
125+
unordered_set<int> vis;
118126
for (auto& p : path) {
119127
int a = p[0], b = p[1];
128+
if (vis.count(a * 1000 + b)) {
129+
continue;
130+
}
131+
vis.insert(a * 1000 + b);
120132
s.insert(a);
121133
s.insert(b);
122134
ind[b]++;
@@ -139,8 +151,13 @@ func transportationHub(path [][]int) int {
139151
ind := [1001]int{}
140152
outd := [1001]int{}
141153
s := map[int]struct{}{}
154+
vis := map[int]bool{}
142155
for _, p := range path {
143156
a, b := p[0], p[1]
157+
if vis[a*1000+b] {
158+
continue
159+
}
160+
vis[a*1000+b] = true
144161
s[a] = struct{}{}
145162
s[b] = struct{}{}
146163
outd[a]++
@@ -162,7 +179,12 @@ function transportationHub(path: number[][]): number {
162179
const ind: number[] = new Array(1001).fill(0);
163180
const outd: number[] = new Array(1001).fill(0);
164181
const s: Set<number> = new Set();
182+
const vis: Set<number> = new Set();
165183
for (const [a, b] of path) {
184+
if (vis.has(a * 1000 + b)) {
185+
continue;
186+
}
187+
vis.add(a * 1000 + b);
166188
s.add(a);
167189
s.add(b);
168190
ind[b]++;

lcp/LCP 62. 交通枢纽/Solution.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@ class Solution {
44
int ind[1001]{};
55
int outd[1001]{};
66
unordered_set<int> s;
7+
unordered_set<int> vis;
78
for (auto& p : path) {
89
int a = p[0], b = p[1];
10+
if (vis.count(a * 1000 + b)) {
11+
continue;
12+
}
13+
vis.insert(a * 1000 + b);
914
s.insert(a);
1015
s.insert(b);
1116
ind[b]++;

lcp/LCP 62. 交通枢纽/Solution.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@ func transportationHub(path [][]int) int {
22
ind := [1001]int{}
33
outd := [1001]int{}
44
s := map[int]struct{}{}
5+
vis := map[int]bool{}
56
for _, p := range path {
67
a, b := p[0], p[1]
8+
if vis[a*1000+b] {
9+
continue
10+
}
11+
vis[a*1000+b] = true
712
s[a] = struct{}{}
813
s[b] = struct{}{}
914
outd[a]++

lcp/LCP 62. 交通枢纽/Solution.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ public int transportationHub(int[][] path) {
33
int[] ind = new int[1001];
44
int[] outd = new int[1001];
55
Set<Integer> s = new HashSet<>();
6+
Set<Integer> vis = new HashSet<>();
67
for (int[] p : path) {
78
int a = p[0], b = p[1];
8-
s.add(a);
9-
s.add(b);
10-
ind[b]++;
11-
outd[a]++;
9+
if (vis.add(a * 1000 + b)) {
10+
s.add(a);
11+
s.add(b);
12+
ind[b]++;
13+
outd[a]++;
14+
}
1215
}
1316
for (int c : s) {
1417
if (ind[c] == s.size() - 1 && outd[c] == 0) {

lcp/LCP 62. 交通枢纽/Solution.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ def transportationHub(self, path: List[List[int]]) -> int:
33
ind = Counter()
44
outd = Counter()
55
s = set()
6+
vis = set()
67
for a, b in path:
8+
if (a, b) in vis:
9+
continue
10+
vis.add((a, b))
711
s.add(a)
812
s.add(b)
913
outd[a] += 1

lcp/LCP 62. 交通枢纽/Solution.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ function transportationHub(path: number[][]): number {
22
const ind: number[] = new Array(1001).fill(0);
33
const outd: number[] = new Array(1001).fill(0);
44
const s: Set<number> = new Set();
5+
const vis: Set<number> = new Set();
56
for (const [a, b] of path) {
7+
if (vis.has(a * 1000 + b)) {
8+
continue;
9+
}
10+
vis.add(a * 1000 + b);
611
s.add(a);
712
s.add(b);
813
ind[b]++;

0 commit comments

Comments
 (0)