题目描述补充
题目:最大子数组Ⅰ
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例 1:
输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
示例 2:
输入: nums = [1]
输出: 1
示例 3:
输入: nums = [0]
输出: 0
注意:
- 你可以假设
nums
中的所有元素都是整数。 nums
的长度在[1, 2 * 10^4]
范围内。
PHP 代码示例
function maxSubArray($nums) {
$maxSum = $nums[0];
$currentSum = $nums[0];
for ($i = 1; $i < count($nums); $i++) {
// 如果当前元素比之前的和小加上当前元素还要大,则重置当前和
$currentSum = max($nums[$i], $currentSum + $nums[$i]);
// 更新最大和
$maxSum = max($maxSum, $currentSum);
}
return $maxSum;
}
// 测试示例
$nums = [-2,1,-3,4,-1,2,1,-5,4];
echo maxSubArray($nums); // 输出: 6
Python 代码示例
def maxSubArray(nums):
max_sum = nums[0]
current_sum = nums[0]
for num in nums[1:]:
current_sum = max(num, current_sum + num)
max_sum = max(max_sum, current_sum)
return max_sum
# 测试示例
nums = [-2,1,-3,4,-1,2,1,-5,4]
print(maxSubArray(nums)) # 输出: 6
JavaScript 代码示例
function maxSubArray(nums) {
let maxSum = nums[0];
let currentSum = nums[0];
for (let i = 1; i < nums.length; i++) {
// 更新当前和
currentSum = Math.max(nums[i], currentSum + nums[i]);
// 更新最大和
maxSum = Math.max(maxSum, currentSum);
}
return maxSum;
}
// 测试示例
const nums = [-2,1,-3,4,-1,2,1,-5,4];
console.log(maxSubArray(nums)); // 输出: 6
码小课网站中有更多相关内容分享给大家学习,包括各种算法题解、数据结构知识、面试技巧等,欢迎访问码小课网站深入学习。