0053.最大子数组和

方法一:遍历

时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)

func maxSubArray(nums []int) int { ans := nums[0] for sum, i := 0, 0; i < len(nums); i++ { sum += nums[i] if sum > ans { ans = sum } if sum < 0 { sum = 0 } } return ans }
impl Solution { pub fn max_sub_array(nums: Vec<i32>) -> i32 { let mut ans = nums[0]; let mut sum = 0; for v in nums { sum += v; if sum > ans { ans = sum; } if sum < 0 { sum = 0; } } ans } }