We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8468fd1 commit 87da9b6Copy full SHA for 87da9b6
maximum-subarray/yhkee0404.rs
@@ -0,0 +1,35 @@
1
+impl Solution {
2
+ pub fn max_sub_array(nums: Vec<i32>) -> i32 {
3
+ return Self::solve(&nums, 0, nums.len()).unwrap_or(0);
4
+ }
5
+ fn solve(nums: &Vec<i32>, l: usize, r: usize) -> Option<i32> {
6
+ if l >= r {
7
+ return None
8
9
+ if l + 1 == r {
10
+ return Some(nums[l])
11
12
+ let mid = l + ((r - l) >> 1);
13
+ let a = Self::solve(nums, l, mid);
14
+ let b = Self::solve(nums, mid, r);
15
+ if a.is_none() || b.is_none() {
16
+ return a.or(b)
17
18
+ let mut ans = a.max(b);
19
+ let mut c = 0;
20
+ let mut d = 0;
21
+ for i in (l..mid).rev() {
22
+ c += nums[i];
23
+ d = d.max(c);
24
25
+ if d == 0 {
26
+ return ans
27
28
+ c = d;
29
+ for i in mid..r {
30
31
32
33
+ ans.max(Some(d))
34
35
+}
0 commit comments