Skip to content

Commit d32a548

Browse files
authored
Updated exec time 1155-1169
1 parent be4b775 commit d32a548

File tree

9 files changed

+64
-63
lines changed

9 files changed

+64
-63
lines changed

src/main/java/g1101_1200/s1155_number_of_dice_rolls_with_target_sum/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g1101_1200.s1155_number_of_dice_rolls_with_target_sum;
22

3-
// #Medium #Dynamic_Programming #2022_03_05_Time_17_ms_(78.89%)_Space_43.1_MB_(25.85%)
3+
// #Medium #Dynamic_Programming #2023_06_02_Time_15_ms_(84.85%)_Space_40.7_MB_(90.40%)
44

55
import java.util.Arrays;
66

src/main/java/g1101_1200/s1156_swap_for_longest_repeated_character_substring/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g1101_1200.s1156_swap_for_longest_repeated_character_substring;
22

3-
// #Medium #String #Sliding_Window #2022_05_05_Time_12_ms_(47.37%)_Space_44.1_MB_(22.11%)
3+
// #Medium #String #Sliding_Window #2023_06_02_Time_14_ms_(43.18%)_Space_43.8_MB_(6.82%)
44

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

src/main/java/g1101_1200/s1157_online_majority_element_in_subarray/MajorityChecker.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g1101_1200.s1157_online_majority_element_in_subarray;
22

33
// #Hard #Array #Binary_Search #Design #Segment_Tree #Binary_Indexed_Tree
4-
// #2022_03_05_Time_56_ms_(100.00%)_Space_50.3_MB_(92.06%)
4+
// #2023_06_02_Time_108_ms_(95.24%)_Space_58.6_MB_(20.64%)
55

66
import java.util.ArrayList;
77
import java.util.Collections;

src/main/java/g1101_1200/s1158_market_analysis_i/script.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Write your MySQL query statement below
22
# #Medium #Database #SQL_I_Day_9_Control_of_Flow
3-
# #2022_05_24_Time_1039_ms_(77.70%)_Space_0B_(100.00%)
3+
# #2023_06_02_Time_2919_ms_(12.20%)_Space_0B_(100.00%)
44
SELECT U.user_id AS buyer_id, U.join_date, IFNULL(USERS_ORDERED_IN_2019.orders_in_2019, 0) AS orders_in_2019 FROM Users U
55
LEFT JOIN (SELECT U.user_id AS user_id, COUNT(O.item_id) AS orders_in_2019 FROM Users U
66
LEFT JOIN Orders O ON O.buyer_id = U.user_id

src/main/java/g1101_1200/s1160_find_words_that_can_be_formed_by_characters/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g1101_1200.s1160_find_words_that_can_be_formed_by_characters;
22

3-
// #Easy #Array #String #Hash_Table #2022_03_05_Time_53_ms_(30.13%)_Space_63.8_MB_(11.65%)
3+
// #Easy #Array #String #Hash_Table #2023_06_02_Time_31_ms_(42.06%)_Space_44.7_MB_(5.60%)
44

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

src/main/java/g1101_1200/s1161_maximum_level_sum_of_a_binary_tree/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g1101_1200.s1161_maximum_level_sum_of_a_binary_tree;
22

33
// #Medium #Depth_First_Search #Breadth_First_Search #Tree #Binary_Tree
4-
// #2022_03_05_Time_9_ms_(78.65%)_Space_71.4_MB_(44.72%)
4+
// #2023_06_02_Time_7_ms_(97.19%)_Space_46.3_MB_(31.31%)
55

66
import com_github_leetcode.TreeNode;
77
import java.util.ArrayList;

src/main/java/g1101_1200/s1162_as_far_from_land_as_possible/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Array #Dynamic_Programming #Breadth_First_Search #Matrix
44
// #Graph_Theory_I_Day_4_Matrix_Related_Problems
5-
// #2022_03_05_Time_12_ms_(89.17%)_Space_42.6_MB_(90.73%)
5+
// #2023_06_02_Time_16_ms_(62.40%)_Space_44_MB_(42.90%)
66

77
import java.util.LinkedList;
88
import java.util.Objects;
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
11
package g1101_1200.s1163_last_substring_in_lexicographical_order;
22

3-
// #Hard #String #Two_Pointers #2022_03_05_Time_12_ms_(96.43%)_Space_58.6_MB_(8.93%)
3+
// #Hard #String #Two_Pointers #2023_06_02_Time_10_ms_(97.22%)_Space_45.5_MB_(83.33%)
44

55
public class Solution {
6-
public String lastSubstring(String str) {
7-
char[] s = str.toCharArray();
6+
public String lastSubstring(String s) {
87
int i = 0;
9-
int j = i + 1;
10-
int l = 0;
11-
int n = s.length;
12-
while (j + l < n) {
13-
if (s[i + l] == s[j + l]) {
14-
l++;
8+
int j = 1;
9+
int k = 0;
10+
int n = s.length();
11+
char[] ca = s.toCharArray();
12+
while (j + k < n) {
13+
if (ca[i + k] == ca[j + k]) {
14+
k++;
15+
} else if (ca[i + k] > ca[j + k]) {
16+
j = j + k + 1;
17+
k = 0;
1518
} else {
16-
if (s[i + l] <= s[j + l]) {
17-
if (s[j + l] > s[i]) {
18-
i = j + l;
19-
} else {
20-
int p = j - i;
21-
i = j + (l / p) * p;
22-
}
23-
}
24-
j = j + l + 1;
25-
l = 0;
19+
i = Math.max(i + k + 1, j);
20+
j = i + 1;
21+
k = 0;
2622
}
2723
}
28-
return str.substring(i);
24+
return s.substring(i);
2925
}
3026
}
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,59 @@
11
package g1101_1200.s1169_invalid_transactions;
22

3-
// #Medium #Array #String #Hash_Table #Sorting
4-
// #2022_03_05_Time_11_ms_(89.89%)_Space_43.2_MB_(79.45%)
3+
// #Medium #Array #String #Hash_Table #Sorting #2023_06_02_Time_9_ms_(98.31%)_Space_44.9_MB_(7.40%)
54

65
import java.util.ArrayList;
76
import java.util.HashMap;
87
import java.util.List;
98
import java.util.Map;
10-
import java.util.TreeMap;
119

1210
public class Solution {
13-
public List<String> invalidTransactions(String[] transactions) {
14-
Map<String, TreeMap<Integer, Transaction>> map = new HashMap<>();
15-
List<String> result = new ArrayList<>();
16-
for (String transaction : transactions) {
17-
String[] split = transaction.split(",");
18-
String name = split[0];
19-
int time = Integer.parseInt(split[1]);
20-
String city = split[3];
21-
map.putIfAbsent(name, new TreeMap<>());
22-
map.get(name).put(time, new Transaction(time, city));
11+
private static class Transaction {
12+
String name;
13+
int time;
14+
int amount;
15+
String city;
16+
17+
Transaction(String trans) {
18+
String[] s = trans.split(",");
19+
name = s[0];
20+
time = Integer.parseInt(s[1]);
21+
amount = Integer.parseInt(s[2]);
22+
city = s[3];
23+
}
24+
}
25+
26+
public List<String> invalidTransactions(String[] input) {
27+
List<String> res = new ArrayList<>();
28+
if (input == null || input.length == 0) {
29+
return res;
2330
}
24-
for (String transaction : transactions) {
25-
String[] split = transaction.split(",");
26-
String name = split[0];
27-
int time = Integer.parseInt(split[1]);
28-
int amount = Integer.parseInt(split[2]);
29-
String city = split[3];
30-
if (amount > 1000) {
31-
result.add(transaction);
32-
continue;
31+
Map<String, List<Transaction>> map = new HashMap<>();
32+
for (String s : input) {
33+
Transaction trans = new Transaction(s);
34+
if (!map.containsKey(trans.name)) {
35+
map.put(trans.name, new ArrayList<>());
3336
}
34-
for (Map.Entry<Integer, Transaction> entry :
35-
map.get(name).subMap(time - 60, time + 60).entrySet()) {
36-
if (Math.abs(time - entry.getKey()) <= 60 && !entry.getValue().city.equals(city)) {
37-
result.add(transaction);
38-
break;
39-
}
37+
map.get(trans.name).add(trans);
38+
}
39+
for (String s : input) {
40+
Transaction trans = new Transaction(s);
41+
if (!isValid(trans, map)) {
42+
res.add(s);
4043
}
4144
}
42-
return result;
45+
return res;
4346
}
4447

45-
private static class Transaction {
46-
int amount;
47-
String city;
48-
49-
public Transaction(int amount, String city) {
50-
this.amount = amount;
51-
this.city = city;
48+
private boolean isValid(Transaction transaction, Map<String, List<Transaction>> map) {
49+
if (transaction.amount > 1000) {
50+
return false;
51+
}
52+
for (Transaction s : map.get(transaction.name)) {
53+
if (Math.abs(s.time - transaction.time) <= 60 && !s.city.equals(transaction.city)) {
54+
return false;
55+
}
5256
}
57+
return true;
5358
}
5459
}

0 commit comments

Comments
 (0)