Skip to content

Commit 862ffda

Browse files
committed
Added tags
1 parent efeb394 commit 862ffda

File tree

4 files changed

+49
-31
lines changed
  • src/main/java/g3701_3800
    • s3731_find_missing_elements
    • s3732_maximum_product_of_three_elements_after_one_replacement
    • s3733_minimum_time_to_complete_all_deliveries
    • s3734_lexicographically_smallest_palindromic_permutation_greater_than_target

4 files changed

+49
-31
lines changed

src/main/java/g3701_3800/s3731_find_missing_elements/Solution.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,31 @@
11
package g3701_3800.s3731_find_missing_elements;
22

3-
// #Easy #Weekly_Contest_474 #2025_11_02_Time_6_ms_(100.00%)_Space_47.09_MB_(_%)
3+
// #Easy #Array #Hash_Table #Sorting #Weekly_Contest_474
4+
// #2025_11_05_Time_2_ms_(94.89%)_Space_46.54_MB_(95.16%)
45

56
import java.util.ArrayList;
6-
import java.util.Arrays;
77
import java.util.List;
88

99
public class Solution {
1010
public List<Integer> findMissingElements(int[] nums) {
11+
int maxi = 0;
12+
int mini = 101;
1113
List<Integer> list = new ArrayList<>();
12-
Arrays.sort(nums);
13-
for (int i = 0; i < nums.length - 1; i++) {
14-
if (nums[i + 1] - nums[i] > 1) {
15-
for (int j = nums[i] + 1; j < nums[i + 1]; j++) {
16-
list.add(j);
17-
}
14+
boolean[] array = new boolean[101];
15+
for (int num : nums) {
16+
array[num] = true;
17+
if (maxi < num) {
18+
maxi = num;
1819
}
20+
if (mini > num) {
21+
mini = num;
22+
}
23+
}
24+
for (int index = mini + 1; index < maxi; index++) {
25+
if (array[index]) {
26+
continue;
27+
}
28+
list.add(index);
1929
}
2030
return list;
2131
}

src/main/java/g3701_3800/s3732_maximum_product_of_three_elements_after_one_replacement/Solution.java

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

3-
// #Medium #Weekly_Contest_474 #2025_11_02_Time_4_ms_(100.00%)_Space_96.67_MB_(_%)
3+
// #Medium #Array #Math #Sorting #Greedy #Weekly_Contest_474
4+
// #2025_11_05_Time_4_ms_(95.32%)_Space_97.32_MB_(28.84%)
45

56
public class Solution {
67
public long maxProduct(int[] nums) {
Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,47 @@
11
package g3701_3800.s3733_minimum_time_to_complete_all_deliveries;
22

3-
// #Medium #Weekly_Contest_474 #2025_11_02_Time_2_ms_(100.00%)_Space_44.04_MB_(_%)
3+
// #Medium #Math #Binary_Search #Weekly_Contest_474
4+
// #2025_11_05_Time_1_ms_(100.00%)_Space_44.16_MB_(55.61%)
45

56
public class Solution {
6-
private boolean func(long mid, int[] d, int[] r) {
7-
long lcm = (long) r[0] * r[1] / gcd(r[0], r[1]);
8-
long a1 = mid / r[0];
9-
long a2 = mid / r[1];
10-
long a3 = mid / lcm;
11-
long b = mid - a1 - a2 + a3;
12-
long o1 = a2 - a3;
13-
long o2 = a1 - a3;
14-
long d0 = Math.max(d[0] - o1, 0);
15-
long d1 = Math.max(d[1] - o2, 0);
16-
return b >= d0 + d1;
7+
private boolean pos(long k, long n1, long n2, int p1, int p2, long lVal) {
8+
long kP1 = k / p1;
9+
long kP2 = k / p2;
10+
long kL = k / lVal;
11+
long s1 = kP2 - kL;
12+
long s2 = kP1 - kL;
13+
long sB = k - kP1 - kP2 + kL;
14+
long w1 = Math.max(0L, n1 - s1);
15+
long w2 = Math.max(0L, n2 - s2);
16+
return (w1 + w2) <= sB;
1717
}
1818

19-
private long gcd(long a, long b) {
19+
private long findGcd(long a, long b) {
2020
if (b == 0) {
2121
return a;
2222
}
23-
return gcd(b, a % b);
23+
return findGcd(b, a % b);
2424
}
2525

2626
public long minimumTime(int[] d, int[] r) {
27-
long lo = 0;
28-
long hi = (long) 1e12;
29-
long ans = Long.MAX_VALUE;
27+
long n1 = d[0];
28+
long n2 = d[1];
29+
int p1 = r[0];
30+
int p2 = r[1];
31+
long g = findGcd(p1, p2);
32+
long l = (long) p1 * p2 / g;
33+
long lo = n1 + n2;
34+
long hi = (n1 + n2) * Math.max(p1, p2);
35+
long res = hi;
3036
while (lo <= hi) {
31-
long mid = (lo + hi) / 2;
32-
if (func(mid, d, r)) {
33-
ans = mid;
37+
long mid = lo + (hi - lo) / 2;
38+
if (pos(mid, n1, n2, p1, p2, l)) {
39+
res = mid;
3440
hi = mid - 1;
3541
} else {
3642
lo = mid + 1;
3743
}
3844
}
39-
return ans;
45+
return res;
4046
}
4147
}

src/main/java/g3701_3800/s3734_lexicographically_smallest_palindromic_permutation_greater_than_target/Solution.java

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

3-
// #Hard #Weekly_Contest_474 #2025_11_02_Time_3_ms_(50.00%)_Space_46.55_MB_(_%)
3+
// #Hard #String #Two_Pointers #Enumeration #Weekly_Contest_474
4+
// #2025_11_05_Time_2_ms_(100.00%)_Space_46.34_MB_(84.73%)
45

56
import java.util.Arrays;
67

0 commit comments

Comments
 (0)