53. Maximum Subarray
该题目进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
code:
int maxSubArray(int* nums, int numsSize)
{
int *pNumber = (int *)malloc(numsSize * sizeof(int));
pNumber[0] = nums[0];
for(int i = 1;i < numsSize;i ++)
{
pNumber[i] = nums[i] < pNumber[i - 1] + nums[i] ? pNumber[i - 1] + nums[i] :nums[i];
}
//求全局得最优解
int result = pNumber[0];
for(int i = 0;i < numsSize;i ++)
{
if(result < pNumber[i])
{
result = pNumber[i];
}
}
return result;
}
参考资料:
1 https://blog.csdn.net/lw_power/article/details/80892362 LeetCode 题解之 53. Maximum Subarray(连续子数组的最大和问题)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步