Skip to content

Commit 8d16169

Browse files
committed
Refactor for Kadane
1 parent 8c45d6c commit 8d16169

3 files changed

Lines changed: 42 additions & 2 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package array.subarray.kadane;
2+
3+
public class Kadane {
4+
public int maxSubArray(int[] nums) {
5+
int ans = nums[0], dp = nums[0];
6+
7+
for (int i = 1; i < nums.length; i++) {
8+
dp = Math.max(dp + nums[i], nums[i]);
9+
ans = Math.max(ans, dp);
10+
}
11+
12+
return ans;
13+
}
14+
}

src/main/java/array/subarray/kadane/kadane.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ class Kadane {
3333
}
3434
```
3535

36-
## 时间复杂度
36+
## 复杂度
3737

38-
O(n)
38+
### 时间复杂度
39+
40+
O(n)
41+
42+
### 空间复杂度
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package array.subarray.kadane;
2+
3+
import org.junit.jupiter.api.BeforeEach;
4+
import org.junit.jupiter.api.Test;
5+
6+
import static org.junit.jupiter.api.Assertions.assertEquals;
7+
8+
class KadaneTest {
9+
private Kadane tested;
10+
private int[] nums;
11+
12+
@BeforeEach
13+
void setup() {
14+
nums = new int[]{64, -25, 42, 10, -70, 22, 35, -96, 61, 49};
15+
tested = new Kadane();
16+
}
17+
18+
@Test
19+
void maxSubArray() {
20+
assertEquals(110, tested.maxSubArray(nums));
21+
}
22+
}

0 commit comments

Comments
 (0)