Skip to content

Commit a266444

Browse files
committed
Updated tag for tasks 347-1143
1 parent fd10999 commit a266444

File tree

12 files changed

+85
-62
lines changed

12 files changed

+85
-62
lines changed

src/main/java/g0301_0400/s0347_top_k_frequent_elements/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 #Hash_Table #Sorting #Heap_Priority_Queue #Counting
44
// #Divide_and_Conquer #Quickselect #Bucket_Sort #Data_Structure_II_Day_20_Heap_Priority_Queue
5-
// #Big_O_Time_O(n*log(n))_Space_O(k) #2022_07_11_Time_9_ms_(97.93%)_Space_48.5_MB_(83.34%)
5+
// #Big_O_Time_O(n*log(n))_Space_O(k) #2024_11_17_Time_9_ms_(97.30%)_Space_45.4_MB_(92.52%)
66

77
import java.util.Arrays;
88
import java.util.PriorityQueue;

src/main/java/g0301_0400/s0394_decode_string/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0301_0400.s0394_decode_string;
22

33
// #Medium #Top_100_Liked_Questions #String #Stack #Recursion #Level_1_Day_14_Stack #Udemy_Strings
4-
// #Big_O_Time_O(n)_Space_O(n) #2022_07_15_Time_1_ms_(87.68%)_Space_41.2_MB_(83.30%)
4+
// #Big_O_Time_O(n)_Space_O(n) #2024_11_17_Time_0_ms_(100.00%)_Space_41.5_MB_(58.38%)
55

66
public class Solution {
77
private int i = 0;
Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,41 @@
11
package g0401_0500.s0416_partition_equal_subset_sum;
22

33
// #Medium #Top_100_Liked_Questions #Array #Dynamic_Programming #Level_2_Day_13_Dynamic_Programming
4-
// #Big_O_Time_O(n*sums)_Space_O(n*sums) #2022_12_29_Time_27_ms_(94.53%)_Space_41.8_MB_(95.29%)
4+
// #Big_O_Time_O(n*sums)_Space_O(n*sums) #2024_11_17_Time_6_ms_(99.66%)_Space_42.4_MB_(82.95%)
55

66
public class Solution {
77
public boolean canPartition(int[] nums) {
8-
int sums = 0;
9-
for (int num : nums) {
10-
sums += num;
8+
int sum = 0;
9+
for (int val : nums) {
10+
sum += val;
1111
}
12-
if (sums % 2 == 1) {
12+
if (sum % 2 != 0) {
1313
return false;
1414
}
15-
sums /= 2;
16-
boolean[] dp = new boolean[sums + 1];
17-
dp[0] = true;
18-
for (int num : nums) {
19-
for (int sum = sums; sum >= num; sum--) {
20-
dp[sum] = dp[sum] || dp[sum - num];
15+
sum /= 2;
16+
boolean[] set = new boolean[sum + 1];
17+
int[] arr = new int[sum + 2];
18+
int top = 0;
19+
for (int val : nums) {
20+
if (val > sum) {
21+
return false;
22+
}
23+
if (val == sum) {
24+
return true;
25+
}
26+
for (int i = top; i > -1; i--) {
27+
int tempSum = val + arr[i];
28+
if (tempSum > sum || set[tempSum]) {
29+
continue;
30+
} else {
31+
if (tempSum == sum) {
32+
return true;
33+
}
34+
set[tempSum] = true;
35+
arr[++top] = tempSum;
36+
}
2137
}
2238
}
23-
return dp[sums];
39+
return false;
2440
}
2541
}
Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0401_0500.s0437_path_sum_iii;
22

33
// #Medium #Depth_First_Search #Tree #Binary_Tree #Level_2_Day_7_Tree #Big_O_Time_O(n)_Space_O(n)
4-
// #2022_07_16_Time_18_ms_(45.66%)_Space_42_MB_(88.96%)
4+
// #2024_11_17_Time_2_ms_(100.00%)_Space_44.7_MB_(11.66%)
55

66
import com_github_leetcode.TreeNode;
77

@@ -21,28 +21,27 @@
2121
* }
2222
*/
2323
public class Solution {
24-
private int count = 0;
25-
2624
public int pathSum(TreeNode root, int targetSum) {
27-
if (root == null) {
28-
return 0;
29-
}
30-
helper(root, targetSum, 0);
31-
pathSum(root.left, targetSum);
32-
pathSum(root.right, targetSum);
33-
return count;
25+
Map<Long, Integer> h = new HashMap<>();
26+
return dfs(root, targetSum, h, 0L);
3427
}
3528

36-
public void helper(TreeNode node, int targetSum, long currSum) {
37-
currSum += node.val;
38-
if (targetSum == currSum) {
39-
count++;
29+
int dfs(TreeNode root, int t, HashMap<Long, Integer> h, Long cs) {
30+
int s = 0;
31+
if (root == null) {
32+
return 0;
4033
}
41-
if (node.left != null) {
42-
helper(node.left, targetSum, currSum);
34+
Long k = cs + root.val;
35+
if (k == t) {
36+
s += 1;
4337
}
44-
if (node.right != null) {
45-
helper(node.right, targetSum, currSum);
38+
if (h.getOrDefault(k - t, 0) > 0) {
39+
s += h.get(k - t);
4640
}
41+
h.put(k, h.getOrDefault(k, 0) + 1);
42+
s += dfs(root.left, t, h, k);
43+
s += dfs(root.right, t, h, k);
44+
h.put(k, h.getOrDefault(k, 0) - 1);
45+
return s;
4746
}
4847
}

src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// #Medium #Top_100_Liked_Questions #String #Hash_Table #Sliding_Window
44
// #Algorithm_II_Day_5_Sliding_Window #Programming_Skills_II_Day_12
55
// #Level_1_Day_12_Sliding_Window/Two_Pointer #Big_O_Time_O(n+m)_Space_O(1)
6-
// #2022_07_16_Time_6_ms_(99.03%)_Space_47.9_MB_(50.50%)
6+
// #2024_11_17_Time_3_ms_(99.83%)_Space_44.7_MB_(74.83%)
77

88
import java.util.ArrayList;
99
import java.util.List;
Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,45 @@
11
package g0401_0500.s0494_target_sum;
22

33
// #Medium #Array #Dynamic_Programming #Backtracking #Big_O_Time_O(n*(sum+s))_Space_O(n*(sum+s))
4-
// #2022_07_21_Time_9_ms_(79.99%)_Space_45.2_MB_(32.79%)
4+
// #2024_11_17_Time_4_ms_(92.28%)_Space_42.7_MB_(57.04%)
55

66
public class Solution {
7-
public int findTargetSumWays(int[] nums, int s) {
8-
int sum = 0;
9-
s = Math.abs(s);
10-
for (int num : nums) {
11-
sum += num;
7+
public int findTargetSumWays(int[] nums, int target) {
8+
int totalSum = 0;
9+
int n = nums.length;
10+
for (int i = 0; i < n; i++) {
11+
totalSum += nums[i];
1212
}
13-
// Invalid s, just return 0
14-
if (s > sum || (sum + s) % 2 != 0) {
13+
int sum = totalSum - target;
14+
if (sum < 0 || sum % 2 == 1) {
1515
return 0;
1616
}
17-
int[][] dp = new int[(sum + s) / 2 + 1][nums.length + 1];
18-
dp[0][0] = 1;
19-
// empty knapsack must be processed specially
20-
for (int i = 0; i < nums.length; i++) {
21-
if (nums[i] == 0) {
22-
dp[0][i + 1] = dp[0][i] * 2;
23-
} else {
24-
dp[0][i + 1] = dp[0][i];
25-
}
17+
return solve(nums, sum / 2);
18+
}
19+
20+
private int solve(int nums[], int target) {
21+
int prev[] = new int[target + 1];
22+
if (nums[0] == 0) {
23+
prev[0] = 2;
24+
} else {
25+
prev[0] = 1;
26+
}
27+
if (nums[0] != 0 && nums[0] <= target) {
28+
prev[nums[0]] = 1;
2629
}
27-
for (int i = 1; i < dp.length; i++) {
28-
for (int j = 0; j < nums.length; j++) {
29-
dp[i][j + 1] += dp[i][j];
30-
if (nums[j] <= i) {
31-
dp[i][j + 1] += dp[i - nums[j]][j];
30+
int n = nums.length;
31+
for (int i = 1; i < n; i++) {
32+
int curr[] = new int[target + 1];
33+
for (int j = 0; j <= target; j++) {
34+
int taken = 0;
35+
if (j >= nums[i]) {
36+
taken = prev[j - nums[i]];
3237
}
38+
int nonTaken = prev[j];
39+
curr[j] = taken + nonTaken;
3340
}
41+
prev = curr;
3442
}
35-
return dp[(sum + s) / 2][nums.length];
43+
return prev[target];
3644
}
3745
}

src/main/java/g0501_0600/s0543_diameter_of_binary_tree/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 #Depth_First_Search #Tree #Binary_Tree #Level_2_Day_7_Tree
44
// #Udemy_Tree_Stack_Queue #Big_O_Time_O(n)_Space_O(n)
5-
// #2022_08_02_Time_1_ms_(65.86%)_Space_43.5_MB_(33.52%)
5+
// #2024_11_17_Time_0_ms_(100.00%)_Space_44.5_MB_(74.23%)
66

77
import com_github_leetcode.TreeNode;
88

src/main/java/g0501_0600/s0560_subarray_sum_equals_k/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0501_0600.s0560_subarray_sum_equals_k;
22

33
// #Medium #Top_100_Liked_Questions #Array #Hash_Table #Prefix_Sum #Data_Structure_II_Day_5_Array
4-
// #Big_O_Time_O(n)_Space_O(n) #2022_08_03_Time_21_ms_(98.97%)_Space_46.8_MB_(88.27%)
4+
// #Big_O_Time_O(n)_Space_O(n) #2024_11_17_Time_22_ms_(95.17%)_Space_47.2_MB_(6.13%)
55

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

src/main/java/g0601_0700/s0647_palindromic_substrings/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0601_0700.s0647_palindromic_substrings;
22

33
// #Medium #String #Dynamic_Programming #Big_O_Time_O(n^2)_Space_O(n)
4-
// #2022_03_21_Time_2_ms_(98.77%)_Space_41.7_MB_(75.10%)
4+
// #2024_11_17_Time_2_ms_(99.31%)_Space_41.4_MB_(77.04%)
55

66
public class Solution {
77
private void expand(char[] a, int l, int r, int[] res) {

src/main/java/g0701_0800/s0739_daily_temperatures/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0701_0800.s0739_daily_temperatures;
22

33
// #Medium #Top_100_Liked_Questions #Array #Stack #Monotonic_Stack #Programming_Skills_II_Day_6
4-
// #Big_O_Time_O(n)_Space_O(n) #2022_03_25_Time_10_ms_(94.99%)_Space_118.3_MB_(70.21%)
4+
// #Big_O_Time_O(n)_Space_O(n) #2024_11_17_Time_8_ms_(96.83%)_Space_60.6_MB_(55.93%)
55

66
@SuppressWarnings("java:S135")
77
public class Solution {

0 commit comments

Comments
 (0)