Skip to content

Commit a45ae6d

Browse files
committed
update 53 java
1 parent 8399760 commit a45ae6d

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

README.md

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

10321032
| # | Title | Solution | Time | Space | Difficulty | Tag | Status|
10331033
|-----|---------------- | --------------- | --------------- | --------------- | ------------- |--------------|-----|
1034-
053| [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)| [Python](./leetcode_python/Dynamic_Programming/maximum-subarray.py), [Java](./leetcode_java/src/main/java/LeetCodeJava/Greedy/MaximumSubarray.java) | _O(n)_ | _O(1)_ | Medium |Curated Top 75, brute force, divied & conquer, `DP`,`dp basic`,`amazon`,`fb`| AGAIN************* (7)
1034+
053| [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)| [Python](./leetcode_python/Dynamic_Programming/maximum-subarray.py), [Java](./leetcode_java/src/main/java/LeetCodeJava/Greedy/MaximumSubarray.java) | _O(n)_ | _O(1)_ | Medium |Curated Top 75, brute force, pre-sum array,`dp basic`,`amazon`,`fb`| AGAIN************* (7)
10351035
062| [Unique Paths](https://leetcode.com/problems/unique-paths/)| [Python](./leetcode_python/Dynamic_Programming/unique-paths.py), [Java](./leetcode_java/src/main/java/LeetCodeJava/DynamicProgramming/UniquePaths.java) | _O(m * n)_| _O(m + n)_ | Medium|Curated Top 75, `dp`, `basic`, fb, google, apple, amazon, m$| AGAIN**** (2)
10361036
063| [Unique Paths II](https://leetcode.com/problems/unique-paths-ii/) | [Python](./leetcode_python/Dynamic_Programming/unique-paths-ii.py) | _O(m * n)_ | _O(m + n)_ | Medium |`trick`, check `#062 Unique Paths`, `amazon`| AGAIN*
10371037
064| [Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/)| [Python](./leetcode_python/Dynamic_Programming/minimum-path-sum.py) | _O(m * n)_ | _O(m + n)_ | Medium |`DP`, `amazon`| AGAIN*

leetcode_java/src/main/java/LeetCodeJava/Greedy/MaximumSubarray.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,34 @@ public int maxSubArray(int[] nums) {
8686
return maxSum;
8787
}
8888

89+
// V0'-1
90+
// IDEA : PRE-SUM ARRAY (fixed by gpt)
91+
public int maxSubArray_0_1_1(int[] nums) {
92+
if (nums == null || nums.length == 0) {
93+
throw new IllegalArgumentException("Input array cannot be null or empty");
94+
}
95+
96+
int n = nums.length;
97+
int[] prefixSum = new int[n + 1];
98+
99+
// Build the prefix sum array
100+
for (int i = 0; i < n; i++) {
101+
prefixSum[i + 1] = prefixSum[i] + nums[i];
102+
}
103+
104+
int maxSum = Integer.MIN_VALUE;
105+
int minPrefixSum = 0;
106+
107+
// Calculate max subarray sum using prefix sums
108+
for (int i = 1; i <= n; i++) {
109+
maxSum = Math.max(maxSum, prefixSum[i] - minPrefixSum);
110+
minPrefixSum = Math.min(minPrefixSum, prefixSum[i]);
111+
}
112+
113+
return maxSum;
114+
}
115+
116+
89117
// V0'
90118
// IDEA : BRUTE FORCE
91119
// https://www.bilibili.com/video/BV1aY4y1Z7ya/?share_source=copy_web&vd_source=49348a1975630e1327042905e52f488a

0 commit comments

Comments
 (0)