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(连续子数组的最大和问题)

posted @   尚修能的技术博客  阅读(128)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示