Skip to content

Commit 0fbe1b2

Browse files
committed
Updated tag for tasks 139-208
1 parent 2150e4f commit 0fbe1b2

File tree

16 files changed

+148
-93
lines changed

16 files changed

+148
-93
lines changed

src/main/java/g0101_0200/s0139_word_break/Solution.java

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,37 @@
33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #String #Hash_Table
44
// #Dynamic_Programming #Trie #Memoization #Algorithm_II_Day_15_Dynamic_Programming
55
// #Dynamic_Programming_I_Day_9 #Udemy_Dynamic_Programming #Big_O_Time_O(M+max*N)_Space_O(M+N+max)
6-
// #2022_06_24_Time_2_ms_(97.08%)_Space_42.1_MB_(90.92%)
6+
// #2024_11_15_Time_1_ms_(99.42%)_Space_42.1_MB_(80.42%)
77

88
import java.util.HashSet;
99
import java.util.List;
1010
import java.util.Set;
1111

1212
public class Solution {
13+
Boolean[] memo;
1314
public boolean wordBreak(String s, List<String> wordDict) {
14-
Set<String> set = new HashSet<>();
15-
int max = 0;
16-
boolean[] flag = new boolean[s.length() + 1];
17-
for (String st : wordDict) {
18-
set.add(st);
19-
if (max < st.length()) {
20-
max = st.length();
21-
}
22-
}
23-
for (int i = 1; i <= max; i++) {
24-
if (dfs(s, 0, i, max, set, flag)) {
25-
return true;
26-
}
27-
}
28-
return false;
15+
memo = new Boolean[s.length() + 1];
16+
return dp(s, 0, wordDict);
2917
}
3018

31-
private boolean dfs(String s, int start, int end, int max, Set<String> set, boolean[] flag) {
32-
if (!flag[end] && set.contains(s.substring(start, end))) {
33-
flag[end] = true;
34-
if (end == s.length()) {
35-
return true;
19+
public boolean dp(String s, int i, List<String> wordDict){
20+
if(i == s.length()) return true;
21+
if(memo[i] != null) return memo[i];
22+
for(String word: wordDict){
23+
int len = word.length();
24+
if(i + len > s.length()){
25+
continue;
3626
}
37-
for (int i = 1; i <= max; i++) {
38-
if (end + i <= s.length() && dfs(s, end, end + i, max, set, flag)) {
39-
return true;
40-
}
27+
String subStr = s.substring(i, i + len);
28+
if(!subStr.equals(word)){
29+
continue;
30+
}
31+
if(dp(s, i + len, wordDict)){
32+
memo[i] = true;
33+
return true;
4134
}
4235
}
36+
memo[i] = false;
4337
return false;
4438
}
4539
}

src/main/java/g0101_0200/s0141_linked_list_cycle/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Hash_Table #Two_Pointers #Linked_List
44
// #Data_Structure_I_Day_7_Linked_List #Udemy_Linked_List #Big_O_Time_O(N)_Space_O(1)
5-
// #2022_06_24_Time_0_ms_(100.00%)_Space_45.5_MB_(68.52%)
5+
// #2024_11_15_Time_0_ms_(100.00%)_Space_44.3_MB_(52.46%)
66

77
import com_github_leetcode.ListNode;
88

src/main/java/g0101_0200/s0142_linked_list_cycle_ii/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Top_100_Liked_Questions #Hash_Table #Two_Pointers #Linked_List
44
// #Data_Structure_II_Day_10_Linked_List #Level_1_Day_4_Linked_List #Udemy_Linked_List
5-
// #Big_O_Time_O(N)_Space_O(1) #2022_06_24_Time_0_ms_(100.00%)_Space_42.3_MB_(98.70%)
5+
// #Big_O_Time_O(N)_Space_O(1) #2024_11_15_Time_0_ms_(100.00%)_Space_44.7_MB_(20.31%)
66

77
import com_github_leetcode.ListNode;
88

src/main/java/g0101_0200/s0146_lru_cache/LRUCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Hash_Table #Design #Linked_List
44
// #Doubly_Linked_List #Udemy_Linked_List #Big_O_Time_O(1)_Space_O(capacity)
5-
// #2022_06_24_Time_87_ms_(50.80%)_Space_125.2_MB_(58.73%)
5+
// #2024_11_15_Time_40_ms_(98.20%)_Space_111.4_MB_(88.70%)
66

77
import java.util.HashMap;
88
import java.util.Map;

src/main/java/g0101_0200/s0148_sort_list/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Sorting #Two_Pointers #Linked_List
44
// #Divide_and_Conquer #Merge_Sort #Level_2_Day_4_Linked_List #Big_O_Time_O(log(N))_Space_O(log(N))
5-
// #2022_06_24_Time_12_ms_(85.82%)_Space_76_MB_(43.84%)
5+
// #2024_11_15_Time_9_ms_(93.90%)_Space_56.9_MB_(37.47%)
66

77
import com_github_leetcode.ListNode;
88

src/main/java/g0101_0200/s0152_maximum_product_subarray/Solution.java

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,24 @@
22

33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming
44
// #Dynamic_Programming_I_Day_6 #Level_2_Day_13_Dynamic_Programming #Udemy_Dynamic_Programming
5-
// #Big_O_Time_O(N)_Space_O(1) #2024_07_03_Time_1_ms_(92.31%)_Space_44.6_MB_(75.65%)
5+
// #Big_O_Time_O(N)_Space_O(1) #2024_11_15_Time_1_ms_(92.74%)_Space_45_MB_(23.41%)
66

77
public class Solution {
88
public int maxProduct(int[] nums) {
9-
int currentMaxProd = nums[0];
10-
int currentMinProd = nums[0];
11-
int overAllMaxProd = nums[0];
12-
for (int i = 1; i < nums.length; i++) {
13-
if (nums[i] < 0) {
14-
int temp = currentMaxProd;
15-
currentMaxProd = currentMinProd;
16-
currentMinProd = temp;
17-
}
18-
currentMaxProd = Math.max(nums[i], nums[i] * currentMaxProd);
19-
currentMinProd = Math.min(nums[i], nums[i] * currentMinProd);
20-
overAllMaxProd = Math.max(overAllMaxProd, currentMaxProd);
9+
int m=Integer.MIN_VALUE;
10+
int n=nums.length;
11+
int start=1;
12+
int end=1;
13+
for(int i=0;i<n;i++){
14+
if(start==0)
15+
start=1;
16+
if (end==0)
17+
end=1;
18+
start=start*nums[i];
19+
end=end*nums[n-i-1];
20+
m=Math.max(m,Math.max(start,end));
21+
2122
}
22-
return overAllMaxProd;
23+
return m;
2324
}
2425
}

src/main/java/g0101_0200/s0153_find_minimum_in_rotated_sorted_array/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Top_100_Liked_Questions #Array #Binary_Search #Algorithm_II_Day_2_Binary_Search
44
// #Binary_Search_I_Day_12 #Udemy_Binary_Search #Big_O_Time_O(log_N)_Space_O(log_N)
5-
// #2022_06_25_Time_0_ms_(100.00%)_Space_43.3_MB_(6.36%)
5+
// #2024_11_15_Time_0_ms_(100.00%)_Space_42.1_MB_(33.31%)
66

77
public class Solution {
88
private int findMinUtil(int[] nums, int l, int r) {

src/main/java/g0101_0200/s0155_min_stack/MinStack.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Stack #Design
44
// #Data_Structure_II_Day_14_Stack_Queue #Programming_Skills_II_Day_18 #Level_2_Day_16_Design
5-
// #Udemy_Design #Big_O_Time_O(1)_Space_O(N) #2022_06_25_Time_3_ms_(100.00%)_Space_44.3_MB_(85.39%)
5+
// #Udemy_Design #Big_O_Time_O(1)_Space_O(N) #2024_11_15_Time_4_ms_(96.54%)_Space_44.5_MB_(84.54%)
66

77
public class MinStack {
88
private static class Node {

src/main/java/g0101_0200/s0160_intersection_of_two_linked_lists/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Hash_Table #Two_Pointers #Linked_List
44
// #Data_Structure_II_Day_11_Linked_List #Udemy_Linked_List #Big_O_Time_O(M+N)_Space_O(1)
5-
// #2022_06_25_Time_1_ms_(99.68%)_Space_55.1_MB_(63.42%)
5+
// #2024_11_15_Time_1_ms_(99.92%)_Space_48.4_MB_(68.45%)
66

77
import com_github_leetcode.ListNode;
88

src/main/java/g0101_0200/s0169_majority_element/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Array #Hash_Table #Sorting #Counting
44
// #Divide_and_Conquer #Data_Structure_II_Day_1_Array #Udemy_Famous_Algorithm
5-
// #Big_O_Time_O(n)_Space_O(1) #2022_06_25_Time_1_ms_(100.00%)_Space_45.5_MB_(97.51%)
5+
// #Big_O_Time_O(n)_Space_O(1) #2024_11_15_Time_1_ms_(99.89%)_Space_52.8_MB_(64.33%)
66

77
public class Solution {
88
public int majorityElement(int[] arr) {

0 commit comments

Comments
 (0)