Skip to content

Commit 8b8e566

Browse files
committed
Runtime: 98 ms (Top 88.24%) | Memory: 61 MB (Top 77.65%)
1 parent 98f622a commit 8b8e566

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1+
// Runtime: 98 ms (Top 88.24%) | Memory: 61 MB (Top 77.65%)
12
class Solution {
23
public int openLock(String[] deadends, String target) {
3-
// Converted target to Integer type.
4+
// Converted target to Integer type.
45
int t = Integer.parseInt(target);
56
HashSet<Integer> visited = new HashSet<>();
6-
7-
// Converting deadend strings to Integer type. To prevent from visiting deadend, we already mark them visited.
7+
8+
// Converting deadend strings to Integer type. To prevent from visiting deadend, we already mark them visited.
89
for(String str: deadends){
910
visited.add(Integer.parseInt(str));
1011
}
11-
// BFS
12+
// BFS
1213
Queue<Integer> q = new ArrayDeque<>();
13-
// We make sure that 0 itself isn't a deadend
14+
// We make sure that 0 itself isn't a deadend
1415
if(visited.contains(0)){
1516
return -1;
1617
}
@@ -24,17 +25,17 @@ public int openLock(String[] deadends, String target) {
2425
if(t == elem){
2526
return level;
2627
}
27-
// Will help check 4 digits of the element. From digit with low precendence(ones place) to high precedence(thousands place)
28+
// Will help check 4 digits of the element. From digit with low precendence(ones place) to high precedence(thousands place)
2829
for(int i = 1; i < 10000; i= i*10){
29-
// The wheel can be rotated in two directions. Hence two numbers.
30-
int num1;
30+
// The wheel can be rotated in two directions. Hence two numbers.
31+
int num1;
3132
int num2;
32-
// The wheel at 0 can become 1 or 9 due to wrapping.
33+
// The wheel at 0 can become 1 or 9 due to wrapping.
3334
if(elem / i % 10 == 0){
3435
num1=elem + i;
3536
num2 = elem+ i * 9;
3637
}
37-
// The wheel at 9 can become 0 or 8 due to wrapping.
38+
// The wheel at 9 can become 0 or 8 due to wrapping.
3839
else if(elem / i % 10 == 9){
3940
num1 = elem - i * 9;
4041
num2 = elem -i;
@@ -43,19 +44,19 @@ else if(elem / i % 10 == 9){
4344
num1 = elem -i;
4445
num2 = elem + i;
4546
}
46-
// Checking if numbers have already been visited.
47+
// Checking if numbers have already been visited.
4748
if(!(visited.contains(num1))){
4849
visited.add(num1);
4950
q.add(num1);
5051
}
5152
if(!(visited.contains(num2))){
5253
visited.add(num2);
5354
q.add(num2);
54-
}
55+
}
5556
}
5657
}
5758
level++;
5859
}
5960
return -1;
6061
}
61-
}
62+
}

0 commit comments

Comments
 (0)