Skip to content

Commit be0f557

Browse files
committed
Updated tags
1 parent b153a11 commit be0f557

File tree

8 files changed

+89
-46
lines changed

8 files changed

+89
-46
lines changed

src/main/java/g3601_3700/s3618_split_array_by_prime_indices/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3618_split_array_by_prime_indices;
22

3-
// #Medium #2025_07_20_Time_3_ms_(100.00%)_Space_62.52_MB_(100.00%)
3+
// #Medium #Biweekly_Contest_161 #2025_07_22_Time_3_ms_(100.00%)_Space_62.42_MB_(16.27%)
44

55
public class Solution {
66
public long splitArray(int[] nums) {

src/main/java/g3601_3700/s3619_count_islands_with_total_value_divisible_by_k/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3619_count_islands_with_total_value_divisible_by_k;
22

3-
// #Medium #2025_07_20_Time_16_ms_(96.67%)_Space_70.90_MB_(100.00%)
3+
// #Medium #Biweekly_Contest_161 #2025_07_22_Time_16_ms_(96.65%)_Space_71.27_MB_(46.65%)
44

55
public class Solution {
66
private int m;
Lines changed: 82 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,102 @@
11
package g3601_3700.s3620_network_recovery_pathways;
22

3-
// #Hard #2025_07_20_Time_18_ms_(100.00%)_Space_120.24_MB_(100.00%)
3+
// #Hard #Biweekly_Contest_161 #2025_07_22_Time_158_ms_(64.00%)_Space_130.14_MB_(14.77%)
44

55
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.LinkedList;
8+
import java.util.List;
9+
import java.util.Queue;
610

7-
@SuppressWarnings("unchecked")
811
public class Solution {
9-
private int ans = -1;
10-
private int d;
11-
private long k = 0;
12-
13-
public int findMaxPathScore(int[][] edges, boolean[] online, long k) {
14-
int n = online.length;
15-
this.k = k;
16-
this.d = n - 1;
17-
ArrayList<P>[] g = new ArrayList[n];
12+
private List<Integer> topologicalSort(int n, List<List<Integer>> g) {
13+
int[] indeg = new int[n];
1814
for (int i = 0; i < n; ++i) {
19-
g[i] = new ArrayList<>();
20-
}
21-
for (int[] i : edges) {
22-
if (online[i[0]] && online[i[1]]) {
23-
g[i[0]].add(new P(i[1], i[2]));
15+
for (int adj_node : g.get(i)) {
16+
indeg[adj_node]++;
2417
}
2518
}
26-
dfs(g, 0, 0L, Integer.MAX_VALUE);
27-
return ans;
28-
}
29-
30-
private void dfs(ArrayList<P>[] g, int s, long tc, int max) {
31-
if (s == d) {
32-
if (ans == -1) {
33-
ans = max;
34-
} else {
35-
ans = Math.max(ans, max);
19+
Queue<Integer> q = new LinkedList<>();
20+
List<Integer> ts = new ArrayList<>();
21+
for (int i = 0; i < n; ++i) {
22+
if (indeg[i] == 0) {
23+
q.offer(i);
3624
}
37-
return;
3825
}
39-
for (P i : g[s]) {
40-
long cost = tc + i.c;
41-
if (ans != -1 && ans >= max) {
42-
return;
26+
while (!q.isEmpty()) {
27+
int u = q.poll();
28+
ts.add(u);
29+
for (int v : g.get(u)) {
30+
indeg[v]--;
31+
if (indeg[v] == 0) {
32+
q.offer(v);
33+
}
4334
}
44-
if (cost <= k) {
45-
dfs(g, i.d, cost, Math.min(max, i.c));
35+
}
36+
return ts;
37+
}
38+
39+
private boolean check(int x, int n, List<List<int[]>> adj, List<Integer> ts, boolean[] online, long k) {
40+
long[] d = new long[n];
41+
Arrays.fill(d, Long.MAX_VALUE); // Represents INF
42+
d[0] = 0;
43+
for (int u : ts) {
44+
if (d[u] != Long.MAX_VALUE) { // If d[u] is reachable
45+
for (int[] p : adj.get(u)) {
46+
int v = p[0];
47+
int c = p[1];
48+
if (c < x || !online[v]) {
49+
continue;
50+
}
51+
if (d[u] + c < d[v]) {
52+
d[v] = d[u] + c;
53+
}
54+
}
4655
}
4756
}
57+
return d[n - 1] <= k;
4858
}
4959

50-
private static final class P {
51-
int d;
52-
int c;
60+
public int findMaxPathScore(int[][] edges, boolean[] online, long k) {
61+
int n = online.length;
62+
// Adjacency list for graph with edge weights
63+
List<List<int[]>> adj = new ArrayList<>();
64+
for (int i = 0; i < n; i++) {
65+
adj.add(new ArrayList<>());
66+
}
67+
// Adjacency list for topological sort (unweighted graph)
68+
List<List<Integer>> g = new ArrayList<>();
69+
for (int i = 0; i < n; i++) {
70+
g.add(new ArrayList<>());
71+
}
72+
for (int[] e : edges) {
73+
int u = e[0];
74+
int v = e[1];
75+
int c = e[2];
76+
adj.get(u).add(new int[]{v, c});
77+
g.get(u).add(v);
78+
}
79+
80+
List<Integer> ts = topologicalSort(n, g);
5381

54-
P(int d, int c) {
55-
this.d = d;
56-
this.c = c;
82+
// Call the helper method
83+
if (!check(0, n, adj, ts, online, k)) {
84+
return -1;
85+
}
86+
87+
int l = 0;
88+
int h = 0;
89+
for (int[] e : edges) {
90+
h = Math.max(h, e[2]);
91+
}
92+
while (l < h) {
93+
int md = l + (h - l + 1) / 2;
94+
if (check(md, n, adj, ts, online, k)) {
95+
l = md;
96+
} else {
97+
h = md - 1;
98+
}
5799
}
100+
return l;
58101
}
59102
}

src/main/java/g3601_3700/s3621_number_of_integers_with_popcount_depth_equal_to_k_i/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3621_number_of_integers_with_popcount_depth_equal_to_k_i;
22

3-
// #Hard #2025_07_20_Time_1_ms_(100.00%)_Space_41.10_MB_(100.00%)
3+
// #Hard #Biweekly_Contest_161 #2025_07_22_Time_9_ms_(70.67%)_Space_44.98_MB_(38.42%)
44

55
public class Solution {
66
private static final int MX_LN = 61;

src/main/java/g3601_3700/s3622_check_divisibility_by_digit_sum_and_product/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3622_check_divisibility_by_digit_sum_and_product;
22

3-
// #Easy #2025_07_20_Time_0_ms_(100.00%)_Space_40.53_MB_(_%)
3+
// #Easy #Weekly_Contest_459 #2025_07_22_Time_0_ms_(100.00%)_Space_41.36_MB_(8.47%)
44

55
public class Solution {
66
public boolean checkDivisibility(int n) {

src/main/java/g3601_3700/s3623_count_number_of_trapezoids_i/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3623_count_number_of_trapezoids_i;
22

3-
// #Medium #2025_07_20_Time_30_ms_(99.91%)_Space_100.40_MB_(100.00%)
3+
// #Medium #Weekly_Contest_459 #2025_07_22_Time_27_ms_(100.00%)_Space_101.17_MB_(64.13%)
44

55
import java.util.HashMap;
66
import java.util.Map;

src/main/java/g3601_3700/s3624_number_of_integers_with_popcount_depth_equal_to_k_ii/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3624_number_of_integers_with_popcount_depth_equal_to_k_ii;
22

3-
// #Hard #2025_07_20_Time_27_ms_(96.92%)_Space_125.98_MB_(100.00%)
3+
// #Hard #Weekly_Contest_459 #2025_07_22_Time_26_ms_(97.90%)_Space_99.87_MB_(97.09%)
44

55
import java.util.ArrayList;
66

src/main/java/g3601_3700/s3625_count_number_of_trapezoids_ii/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g3601_3700.s3625_count_number_of_trapezoids_ii;
22

3-
// #Hard #2025_07_21_Time_354_ms_(100.00%)_Space_131.52_MB_(52.31%)
3+
// #Hard #Weekly_Contest_459 #2025_07_22_Time_372_ms_(97.30%)_Space_154.52_MB_(31.53%)
44

55
import java.util.HashMap;
66
import java.util.Map;

0 commit comments

Comments
 (0)