LeetCode 최고 100 T53- 최대 서브와

주제 설명 :

nums에게 정수 배열을 감안하고, (a 최소의 요소를 포함하는 서브 어레이) 연속 서브 어레이의 최대 및 최대 수익을 갖는 발견.

예 :

입력 : [-2,1, 설 포닐, -1,2,1, -5,4],
출력 : 6
명 : 연속 서브 어레이 [4, -1,2,1], 최대 6이었다 .

문제 해결 아이디어 :

동적 재발은 점진적으로 용액 <0 이전 단계가 폐기되는 경우, 용액의 각 단계의 종료 위치의 연속적인 배열에서, 합은 실제로,이 단계에서 비교하는 이전 단계의 용액을 기록 해결할 사용합니다. 마지막 단계는이 솔루션을 얻기 위해, 단계 솔루션을 비교하기 전에 최대 값의 tmp는, 현재 최적의 솔루션을 저장합니다.

코드 :

class Solution {
    public int maxSubArray(int[] nums) {
        int tmp = nums[0];
        int sum = 0;
        for (int num : nums) {
            sum = sum > 0 ? sum + num : num;
            if (tmp <= sum) {
                tmp = sum;
            }
        }
        return tmp;
    }
}

 

추천

출처blog.csdn.net/qq_41544550/article/details/91903959