Skip to content

Commit c0c6d0a

Browse files
committed
Updated tags and solution
1 parent ffcc438 commit c0c6d0a

File tree

4 files changed

+22
-37
lines changed

4 files changed

+22
-37
lines changed

src/main/java/g3301_3400/s3354_make_array_elements_equal_to_zero/Solution.java

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

3-
// #Easy #2024_11_18_Time_1_ms_(100.00%)_Space_42.2_MB_(100.00%)
3+
// #Easy #Array #Simulation #Prefix_Sum #2024_11_19_Time_1_ms_(95.09%)_Space_41.9_MB_(92.55%)
44

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

src/main/java/g3301_3400/s3355_zero_array_transformation_i/Solution.java

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

3-
// #Medium #2024_11_18_Time_3_ms_(100.00%)_Space_94.7_MB_(100.00%)
3+
// #Medium #Array #Prefix_Sum #2024_11_19_Time_3_ms_(91.34%)_Space_96_MB_(17.22%)
44

55
public class Solution {
66
public boolean isZeroArray(int[] nums, int[][] queries) {
Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
11
package g3301_3400.s3356_zero_array_transformation_ii;
22

3-
// #Medium #2024_11_18_Time_22_ms_(100.00%)_Space_113.5_MB_(100.00%)
3+
// #Medium #Array #Binary_Search #Prefix_Sum #2024_11_19_Time_4_ms_(93.46%)_Space_118.5_MB_(13.87%)
44

55
public class Solution {
66
public int minZeroArray(int[] nums, int[][] queries) {
7-
int total = 0;
8-
int l = 0;
9-
int h = queries.length - 1;
10-
for (int i : nums) {
11-
total += i;
12-
}
13-
if (total == 0) {
14-
return 0;
15-
}
16-
while (l <= h) {
17-
int m = l + (h - l) / 2;
18-
if (isPossible(nums, queries, total, m)) {
19-
h = m - 1;
20-
} else {
21-
l = m + 1;
22-
}
23-
}
24-
return h + 2 > queries.length ? -1 : h + 2;
25-
}
26-
27-
private boolean isPossible(int[] nums, int[][] queries, int total, int k) {
28-
int[] res = new int[nums.length + 1];
29-
int sum = 0;
30-
for (int i = 0; i <= k; i++) {
31-
int[] q = queries[i];
32-
res[q[0]] += q[2];
33-
res[q[1] + 1] -= q[2];
34-
}
7+
int[] diff = new int[nums.length];
8+
int idx = 0;
9+
int d = 0;
3510
for (int i = 0; i < nums.length; i++) {
36-
sum += res[i];
37-
if (nums[i] - sum > 0) {
38-
return false;
11+
d += diff[i];
12+
while (nums[i] + d > 0 && idx < queries.length) {
13+
int[] q = queries[idx];
14+
if (i >= q[0] && i <= q[1]) {
15+
d -= q[2];
16+
}
17+
diff[q[0]] -= q[2];
18+
if (q[1] + 1 < nums.length) {
19+
diff[q[1] + 1] += q[2];
20+
}
21+
idx++;
22+
}
23+
if (nums[i] + d > 0) {
24+
return -1;
3925
}
40-
total -= nums[i];
4126
}
42-
return total == 0;
27+
return idx;
4328
}
4429
}

src/main/java/g3301_3400/s3357_minimize_the_maximum_adjacent_element_difference/Solution.java

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

3-
// #Hard #2024_11_18_Time_5_ms_(100.00%)_Space_58.9_MB_(100.00%)
3+
// #Hard #Array #Greedy #Binary_Search #2024_11_19_Time_5_ms_(100.00%)_Space_59.2_MB_(29.41%)
44

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

0 commit comments

Comments
 (0)