学习时间:
2023年1月28日
题目描述:
![](https://i-blog.csdnimg.cn/blog_migrate/307b058afe994eec08655262ccb58ebb.png)
题解分享:
// 作 者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h> // 调用fmax函数
// 力扣(LeetCode):53. 最大子数组和
// nums:数组 numsSize:数组最大长度
int maxSubArray(int* nums, int numsSize) {
int pre = 0, max = nums[0];
for (int i = 0; i < numsSize; i++) {
pre = fmax(pre + nums[i], nums[i]); // 返回两个数值中最大的那个
max = fmax(max, pre); // 返回两个数值中最大的那个
}
return max; // 返回最大值
}
// 测试用例
// 输入 nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
// 输出 6
// 解释 连续子数组[4, -1, 2, 1] 的和最大,为 6
int main() {
int nums[] = { -2, 1, -3, 4, -1, 2, 1, -5, 4 };
int numsSize = sizeof(nums) / sizeof(nums[0]);
int re = maxSubArray(nums, numsSize);
printf("%d", re);
return 0;
}
【繁华倾夏】【每日力扣题解分享】【Day14】