Skip to content

Commit 10b39e1

Browse files
committed
Updated tags
1 parent cc09123 commit 10b39e1

File tree

8 files changed

+51
-47
lines changed
  • src/main/java/g3701_3800

8 files changed

+51
-47
lines changed

src/main/java/g3701_3800/s3722_lexicographically_smallest_string_after_reverse/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3722_lexicographically_smallest_string_after_reverse;
22

3-
// #Medium #Biweekly_Contest_168 #2025_10_28_Time_8_ms_(100.00%)_Space_44.85_MB_(99.91%)
3+
// #Medium #Binary_Search #Two_Pointers #Enumeration #Biweekly_Contest_168
4+
// #2025_10_29_Time_7_ms_(100.00%)_Space_45.70_MB_(100.00%)
45

56
public class Solution {
67
public String lexSmallest(String s) {

src/main/java/g3701_3800/s3723_maximize_sum_of_squares_of_digits/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3723_maximize_sum_of_squares_of_digits;
22

3-
// #Medium #Biweekly_Contest_168 #2025_10_28_Time_14_ms_(99.30%)_Space_46.14_MB_(70.05%)
3+
// #Medium #Math #Greedy #Biweekly_Contest_168
4+
// #2025_10_29_Time_14_ms_(98.69%)_Space_46.36_MB_(47.20%)
45

56
public class Solution {
67
public String maxSumOfSquares(int places, int sum) {

src/main/java/g3701_3800/s3724_minimum_operations_to_transform_array/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3724_minimum_operations_to_transform_array;
22

3-
// #Medium #Biweekly_Contest_168 #2025_10_28_Time_2_ms_(100.00%)_Space_62.61_MB_(5.39%)
3+
// #Medium #Array #Greedy #Biweekly_Contest_168
4+
// #2025_10_29_Time_2_ms_(100.00%)_Space_61.71_MB_(16.98%)
45

56
public class Solution {
67
public long minOperations(int[] nums1, int[] nums2) {

src/main/java/g3701_3800/s3725_count_ways_to_choose_coprime_integers_from_rows/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3725_count_ways_to_choose_coprime_integers_from_rows;
22

3-
// #Hard #Biweekly_Contest_168 #2025_10_28_Time_30_ms_(93.77%)_Space_47.15_MB_(68.37%)
3+
// #Hard #Array #Dynamic_Programming #Math #Matrix #Number_Theory #Combinatorics
4+
// #Biweekly_Contest_168 #2025_10_29_Time_31_ms_(94.07%)_Space_47.74_MB_(49.21%)
45

56
import java.util.HashMap;
67
import java.util.Map;

src/main/java/g3701_3800/s3726_remove_zeros_in_decimal_representation/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3726_remove_zeros_in_decimal_representation;
22

3-
// #Easy #Weekly_Contest_473 #2025_10_28_Time_1_ms_(98.76%)_Space_40.81_MB_(93.77%)
3+
// #Easy #Math #Simulation #Weekly_Contest_473
4+
// #2025_10_29_Time_1_ms_(98.59%)_Space_40.46_MB_(99.88%)
45

56
public class Solution {
67
public long removeZeros(long n) {

src/main/java/g3701_3800/s3727_maximum_alternating_sum_of_squares/Solution.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package g3701_3800.s3727_maximum_alternating_sum_of_squares;
22

3-
// #Medium #Weekly_Contest_473 #2025_10_28_Time_10_ms_(99.97%)_Space_63.08_MB_(17.57%)
3+
// #Medium #Array #Sorting #Greedy #Weekly_Contest_473
4+
// #2025_10_29_Time_9_ms_(100.00%)_Space_62.45_MB_(32.41%)
45

56
public class Solution {
67
public long maxAlternatingSum(int[] nums) {
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,34 @@
11
package g3701_3800.s3728_stable_subarrays_with_equal_boundary_and_interior_sum;
22

3-
// #Medium #Weekly_Contest_473 #2025_10_28_Time_96_ms_(68.14%)_Space_62.66_MB_(83.54%)
3+
// #Medium #Array #Hash_Table #Prefix_Sum #Weekly_Contest_473
4+
// #2025_10_29_Time_71_ms_(98.21%)_Space_61.51_MB_(88.86%)
45

56
import java.util.HashMap;
67
import java.util.Map;
78

89
public class Solution {
910
public long countStableSubarrays(int[] capacity) {
10-
long n = capacity.length;
11-
long res = 0;
12-
long pre = 0;
13-
Map<Long, Map<Long, Long>> mpp = new HashMap<>();
14-
for (int i = 0; i < n; i++) {
15-
if (mpp.containsKey((long) capacity[i])) {
16-
Map<Long, Long> t = mpp.get((long) capacity[i]);
17-
Long cnt = t.get(pre - capacity[i]);
18-
if (cnt != null) {
19-
res += cnt;
11+
long sum = 0;
12+
Map<Integer, Map<Long, Integer>> map = new HashMap<>();
13+
int index = 0;
14+
long ans = 0;
15+
for (int c : capacity) {
16+
sum += c;
17+
Map<Long, Integer> elementMap = map.get(c);
18+
if (elementMap == null) {
19+
elementMap = new HashMap<>();
20+
map.put(c, elementMap);
21+
elementMap.put(sum, 1);
22+
} else {
23+
Integer orDefault = elementMap.getOrDefault(sum - 2 * c, 0);
24+
elementMap.put(sum, elementMap.getOrDefault(sum, 0) + 1);
25+
if (c == 0 && capacity[index - 1] == 0) {
26+
orDefault--;
2027
}
28+
ans += orDefault;
2129
}
22-
pre += capacity[i];
23-
Map<Long, Long> t = mpp.computeIfAbsent((long) capacity[i], k -> new HashMap<>());
24-
t.put(pre, t.getOrDefault(pre, 0L) + 1L);
25-
if (i > 0 && capacity[i] == 0 && capacity[i - 1] == 0) {
26-
res--;
27-
}
30+
index++;
2831
}
29-
return res;
32+
return ans;
3033
}
3134
}
Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,31 @@
11
package g3701_3800.s3729_count_distinct_subarrays_divisible_by_k_in_sorted_array;
22

3-
// #Hard #Weekly_Contest_473 #2025_10_28_Time_61_ms_(88.70%)_Space_60.47_MB_(80.43%)
3+
// #Hard #Array #Hash_Table #Prefix_Sum #Weekly_Contest_473
4+
// #2025_10_29_Time_33_ms_(99.78%)_Space_62.35_MB_(50.99%)
45

56
import java.util.HashMap;
67
import java.util.Map;
78

89
public class Solution {
910
public long numGoodSubarrays(int[] nums, int k) {
10-
Map<Integer, Long> cnt = new HashMap<>();
11-
cnt.put(0, 1L);
12-
int pre = 0;
13-
int n = nums.length;
14-
long res = 0;
15-
for (int a : nums) {
16-
pre = (pre + a) % k;
17-
res += cnt.getOrDefault(pre, 0L);
18-
cnt.put(pre, cnt.getOrDefault(pre, 0L) + 1L);
19-
}
20-
int i = 0;
21-
while (i < n) {
22-
int j = i;
23-
while (j < n && nums[j] == nums[i]) {
24-
++j;
25-
}
26-
int l = j - i;
27-
for (int ll = 1; ll < l; ++ll) {
28-
if ((long) ll * nums[i] % k == 0) {
29-
res -= (l - ll);
11+
Map<Integer, Integer> cnt = new HashMap<>(nums.length, 1);
12+
cnt.put(0, 1);
13+
long sum = 0;
14+
int lastStart = 0;
15+
long ans = 0;
16+
for (int i = 0; i < nums.length; i++) {
17+
int x = nums[i];
18+
if (i > 0 && x != nums[i - 1]) {
19+
long s = sum;
20+
for (int t = i - lastStart; t > 0; t--) {
21+
cnt.merge((int) (s % k), 1, Integer::sum);
22+
s -= nums[i - 1];
3023
}
24+
lastStart = i;
3125
}
32-
i = j;
26+
sum += x;
27+
ans += cnt.getOrDefault((int) (sum % k), 0);
3328
}
34-
return res;
29+
return ans;
3530
}
3631
}

0 commit comments

Comments
 (0)