LeetCode Brushing Notes _53. 최대 하위 시퀀스 합계

주제는 LeetCode에서

53. 최대 하위 시퀀스 합계

다른 솔루션 또는 소스 코드에 액세스 할 수 있습니다. tongji4m3

기술

정수 배열 nums가 주어지면 합계가 가장 큰 연속 하위 배열을 찾고 (하위 배열에 하나 이상의 요소가 포함됨) 가장 큰 합계를 반환합니다.

예:

输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

많은:

복잡도가 O (n) 인 솔루션을 구현 한 경우보다 정교한 분할 및 정복 솔루션을 사용해보십시오.

아이디어

왼쪽에서 오른쪽으로 이동합니다. 0보다 크면 유지하고 그렇지 않으면하지 않습니다. 결과는 매 순간 판단됩니다

세부 묘사

하위 배열에는 하나 이상의 요소가 포함되어 있으므로 초기화는 0 일 수 없지만 int의 최소값입니다.

암호

//子数组最少包含一个元素
public int maxSubArray(int[] nums)
{
    
    
    int N = nums.length;
    int result = Integer.MIN_VALUE,temp=0;//look,因为条件是至少包含
    for (int i = 0; i < N; i++)
    {
    
    
        temp = temp > 0 ? temp + nums[i] : nums[i];
        result = Math.max(result, temp);
    }
    return result;
}

복잡성 분석

시간 복잡성

O (N) O (N) O ( N )

공간 복잡성

O (1) O (1) O ( 1 )

추천

출처blog.csdn.net/weixin_42249196/article/details/108232389