Skip to content

Commit 3c7830f

Browse files
committed
Improved tasks 1837, 2747
1 parent 5cec1b4 commit 3c7830f

File tree

3 files changed

+33
-26
lines changed

3 files changed

+33
-26
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2628,7 +2628,7 @@
26282628
| 2750 |[Ways to Split Array Into Good Subarrays](src/main/java/g2701_2800/s2750_ways_to_split_array_into_good_subarrays)| Medium | Array, Dynamic_Programming, Math | 7 | 96.36
26292629
| 2749 |[Minimum Operations to Make the Integer Zero](src/main/java/g2701_2800/s2749_minimum_operations_to_make_the_integer_zero)| Medium | Bit_Manipulation, Brainteaser | 1 | 91.11
26302630
| 2748 |[Number of Beautiful Pairs](src/main/java/g2701_2800/s2748_number_of_beautiful_pairs)| Easy | Array, Math, Number_Theory | 11 | 91.00
2631-
| 2747 |[Count Zero Request Servers](src/main/java/g2701_2800/s2747_count_zero_request_servers)| Medium | Array, Hash_Table, Sorting, Sliding_Window | 43 | 76.92
2631+
| 2747 |[Count Zero Request Servers](src/main/java/g2701_2800/s2747_count_zero_request_servers)| Medium | Array, Hash_Table, Sorting, Sliding_Window | 22 | 100.00
26322632
| 2746 |[Decremental String Concatenation](src/main/java/g2701_2800/s2746_decremental_string_concatenation)| Medium | Array, String, Dynamic_Programming | 34 | 85.89
26332633
| 2745 |[Construct the Longest New String](src/main/java/g2701_2800/s2745_construct_the_longest_new_string)| Medium | Math, Greedy, Brainteaser | 1 | 100.00
26342634
| 2744 |[Find Maximum Number of String Pairs](src/main/java/g2701_2800/s2744_find_maximum_number_of_string_pairs)| Easy | Array, String, Hash_Table, Simulation | 1 | 100.00
@@ -3356,7 +3356,7 @@
33563356
| 1840 |[Maximum Building Height](src/main/java/g1801_1900/s1840_maximum_building_height)| Hard | Array, Math | 59 | 94.64
33573357
| 1839 |[Longest Substring Of All Vowels in Order](src/main/java/g1801_1900/s1839_longest_substring_of_all_vowels_in_order)| Medium | String, Sliding_Window | 24 | 86.13
33583358
| 1838 |[Frequency of the Most Frequent Element](src/main/java/g1801_1900/s1838_frequency_of_the_most_frequent_element)| Medium | Array, Sorting, Greedy, Binary_Search, Prefix_Sum, Sliding_Window, Binary_Search_II_Day_9 | 11 | 100.00
3359-
| 1837 |[Sum of Digits in Base K](src/main/java/g1801_1900/s1837_sum_of_digits_in_base_k)| Easy | Math | 1 | 10.42
3359+
| 1837 |[Sum of Digits in Base K](src/main/java/g1801_1900/s1837_sum_of_digits_in_base_k)| Easy | Math | 0 | 100.00
33603360
| 1835 |[Find XOR Sum of All Pairs Bitwise AND](src/main/java/g1801_1900/s1835_find_xor_sum_of_all_pairs_bitwise_and)| Hard | Array, Math, Bit_Manipulation | 1 | 100.00
33613361
| 1834 |[Single-Threaded CPU](src/main/java/g1801_1900/s1834_single_threaded_cpu)| Medium | Array, Sorting, Heap_Priority_Queue | 134 | 83.22
33623362
| 1833 |[Maximum Ice Cream Bars](src/main/java/g1801_1900/s1833_maximum_ice_cream_bars)| Medium | Array, Sorting, Greedy | 39 | 84.49

src/main/java/g1801_1900/s1837_sum_of_digits_in_base_k/readme.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ After converting, each digit should be interpreted as a base `10` number, and th
3535
```java
3636
public class Solution {
3737
public int sumBase(int n, int k) {
38-
String str = Integer.toString(Integer.parseInt(n + "", 10), k);
38+
int a = 0;
3939
int sum = 0;
40-
for (char c : str.toCharArray()) {
41-
sum += Character.getNumericValue(c);
40+
int b = 0;
41+
while (n != 0) {
42+
a = n % k;
43+
b = n / k;
44+
sum += a;
45+
n = b;
4246
}
4347
return sum;
4448
}

src/main/java/g2701_2800/s2747_count_zero_request_servers/readme.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -54,37 +54,40 @@ For queries[1]: Only server with id 3 gets no request in the duration [2,4].
5454

5555
```java
5656
import java.util.Arrays;
57-
import java.util.Comparator;
58-
import java.util.HashMap;
5957

6058
public class Solution {
61-
public int[] countServers(int n, int[][] logs, int x, int[] qs) {
62-
int m = qs.length;
63-
var valIdx = new int[m][2];
59+
public int[] countServers(int n, int[][] logs, int x, int[] queries) {
60+
Arrays.sort(logs, (a, b) -> a[1] - b[1]);
61+
int m = queries.length;
62+
int len = logs.length;
63+
int[][] qarr = new int[m][];
6464
for (int i = 0; i < m; i++) {
65-
valIdx[i] = new int[] {qs[i], i};
65+
qarr[i] = new int[] {i, queries[i]};
6666
}
67-
Arrays.sort(valIdx, Comparator.comparingInt(a -> a[0]));
68-
Arrays.sort(logs, Comparator.comparingInt(a -> a[1]));
67+
Arrays.sort(qarr, (a, b) -> a[1] - b[1]);
68+
int[] ans = new int[m];
69+
int[] freq = new int[n + 1];
6970
int l = 0;
7071
int r = 0;
71-
var res = new int[m];
72-
var servCount = new HashMap<Integer, Integer>();
73-
for (var q : valIdx) {
74-
int rVal = q[0];
75-
int lVal = q[0] - x;
76-
int i = q[1];
77-
while (r < logs.length && logs[r][1] <= rVal) {
78-
servCount.merge(logs[r++][0], 1, Integer::sum);
72+
int noReq = n;
73+
for (int[] q : qarr) {
74+
int i = q[0];
75+
int t = q[1];
76+
while (r < len && logs[r][1] <= t) {
77+
if (freq[logs[r][0]]++ == 0) {
78+
noReq--;
79+
}
80+
r++;
7981
}
80-
while (l < r && logs[l][1] < lVal) {
81-
servCount.compute(logs[l][0], (k, v) -> v - 1);
82-
servCount.remove(logs[l][0], 0);
82+
while (l < len && logs[l][1] < t - x) {
83+
if (freq[logs[l][0]]-- == 1) {
84+
noReq++;
85+
}
8386
l++;
8487
}
85-
res[i] = n - servCount.size();
88+
ans[i] = noReq;
8689
}
87-
return res;
90+
return ans;
8891
}
8992
}
9093
```

0 commit comments

Comments
 (0)