Skip to content

Commit 6b0cf19

Browse files
add 3243
1 parent 571b05e commit 6b0cf19

File tree

3 files changed

+69
-0
lines changed
  • paginated_contents/algorithms/4th_thousand
  • src

3 files changed

+69
-0
lines changed

Diff for: paginated_contents/algorithms/4th_thousand/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
| # | Title | Solutions | Video | Difficulty | Tag
22
|------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|------------|----------------------------------------------------------------------
3+
| 3243 | [Shortest Distance After Road Addition Queries I](https://leetcode.com/problems/shortest-distance-after-road-addition-queries-i/) | [Java](https://github.com/fishercoder1534/Leetcode/blob/master/src/main/java/com/fishercoder/solutions/fourththousand/_3243.java) | | Medium |
34
| 3241 | [Time Taken to Mark All Nodes](https://leetcode.com/problems/time-taken-to-mark-all-nodes/) | [Java](https://github.com/fishercoder1534/Leetcode/blob/master/src/main/java/com/fishercoder/solutions/fourththousand/_3241.java) | | Hard |
45
| 3240 | [Minimum Number of Flips to Make Binary Grid Palindromic II](https://leetcode.com/problems/minimum-number-of-flips-to-make-binary-grid-palindromic-ii/) | [Java](https://github.com/fishercoder1534/Leetcode/blob/master/src/main/java/com/fishercoder/solutions/fourththousand/_3240.java) | | Medium |
56
| 3239 | [Minimum Number of Flips to Make Binary Grid Palindromic I](https://leetcode.com/problems/minimum-number-of-flips-to-make-binary-grid-palindromic-i/) | [Java](https://github.com/fishercoder1534/Leetcode/blob/master/src/main/java/com/fishercoder/solutions/fourththousand/_3239.java) | | Easy |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.fishercoder.solutions.fourththousand;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.LinkedList;
6+
import java.util.List;
7+
import java.util.Queue;
8+
9+
public class _3243 {
10+
public static class Solution1 {
11+
public int[] shortestDistanceAfterQueries(int n, int[][] queries) {
12+
List<Integer>[] graph = new ArrayList[n];
13+
for (int i = 0; i < n; i++) {
14+
graph[i] = new ArrayList<>();
15+
if (i + 1 < n) {
16+
graph[i].add(i + 1);
17+
}
18+
}
19+
int[] ans = new int[queries.length];
20+
for (int i = 0; i < queries.length; i++) {
21+
graph[queries[i][0]].add(queries[i][1]);
22+
ans[i] = bfs(graph, n)[n - 1];
23+
}
24+
return ans;
25+
}
26+
27+
private int[] bfs(List<Integer>[] graph, int n) {
28+
int[] shortest = new int[n];
29+
Arrays.fill(shortest, -1);
30+
shortest[0] = 0;
31+
Queue<Integer> q = new LinkedList<>();
32+
q.offer(0);
33+
while (!q.isEmpty()) {
34+
int curr = q.poll();
35+
for (int next : graph[curr]) {
36+
if (shortest[next] == -1) {
37+
shortest[next] = shortest[curr] + 1;
38+
q.offer(next);
39+
}
40+
}
41+
}
42+
return shortest;
43+
}
44+
}
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.fishercoder.fourththousand;
2+
3+
import com.fishercoder.common.utils.CommonUtils;
4+
import com.fishercoder.solutions.fourththousand._3243;
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
7+
8+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
9+
10+
public class _3243Test {
11+
private static _3243.Solution1 solution1;
12+
13+
@BeforeEach
14+
public void setup() {
15+
solution1 = new _3243.Solution1();
16+
}
17+
18+
@Test
19+
public void test1() {
20+
assertArrayEquals(new int[]{3, 2, 1}, solution1.shortestDistanceAfterQueries(5,
21+
CommonUtils.convertLeetCodeIrregularLengths2DArrayInputIntoJavaArray("[2,4],[0,2],[0,4]")));
22+
}
23+
}

0 commit comments

Comments
 (0)