2026-03-05
后端技术
00

目录

一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和及最大子数组,case: nums = [-2,1,-3,4,-1,2,1,-5,4]​

题目描述

一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和及最大子数组,case: nums = [-2,1,-3,4,-1,2,1,-5,4]​

js
package main import ( "fmt" ) // maxSubArray 求最大连续子数组和 func maxSubArray(nums []int) int { if len(nums) == 0 { return 0 } currentSum := nums[0] maxSum := nums[0] for i := 1; i < len(nums); i++ { // 当前和要么接着加,要么从当前元素重新开始 if currentSum < 0 { currentSum = nums[i] } else { currentSum += nums[i] } // 更新最大值 if currentSum > maxSum { maxSum = currentSum } } return maxSum } func main() { nums := []int{-2, 1, -3, 4, -1, 2, 1, -5, 4} result := maxSubArray(nums) fmt.Println("最大连续子数组和为:", result) }

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!