최대 하위 서열과 곱셈 최대 하위 그룹
                                            
 1684 단어  동적 기획
                    
최대 하위 순서 및:https://leetcode-cn.com/problems/maximum-subarray/
승적 최대 하위 배열:https://leetcode-cn.com/problems/maximum-product-subarray/
문제 해결 방법:
동적 기획 문제는 세 가지 조건을 만족시켜야 한다. 첫째는 최우수자 구조이고, 둘째는 자 문제가 중첩되고, 셋째는 후효성이 없다.가장 어려운 것은 상태 이동 방정식을 찾는 것이다.
두 문제의 상태 이동 방정식의 관건은 i번째 요소로 끝나는 최대치를 이해하는 데 있다.
예를 들면 다음과 같습니다.
테스트 그룹은 [1,7,-3,4]
index=0 즉 원소1로 끝나는 하위 서열과 가장 큰 서열은 1이다(1로 끝나는 하위 서열이 하나밖에 없기 때문이다[1])
index=1 즉 원소7로 끝나는 서열과 가장 큰 서열은 얼마나 됩니까?원소 7로 끝나면 하위 서열은 반드시 7을 포함하고 최대값은 두 하위 서열에서 나올 수 있다
1. 그 앞의 원소와 연속하여 서열을 구성하려면 서열에는 반드시 그 앞의 원소인 1이 포함되고 index=i-1로 끝나는 가장 큰 원소는 우리가 구한 max[i-1]이기 때문에 max[i]=max[i-1]+nums[i];
2. 앞의 원소와 서열을 구성하지 않을 수도 있고 원소 자체가 서열이 되면 max[i]=nums[i];
따라서 max[i]=MAX(max[i-1]+nums[i],nums[i]);
class Solution {
    public int maxSubArray(int[] nums) {
        int ans = nums[0];
        int sum = 0;
        for(int num: nums) {
            sum = Math.max(sum+num, num);
            ans = Math.max(ans, sum);
        }
        return ans;
    }
}  class Solution {
    public int maxProduct(int[] nums) {
        int len = nums.length;
        if(len == 0){
            return 0;
        }
        int res = Integer.MIN_VALUE;
        int max_i = 1;
        int min_i = 1;
        for(int i = 0 ; i < len; i++){
            if(nums[i] < 0){
                int temp = max_i;
                max_i = min_i;
                min_i = temp;
            }
            max_i = Math.max(max_i*nums[i], nums[i]);
            min_i = Math.min(min_i*nums[i], nums[i]);
            res = Math.max(max_i, res);
        }
        return res;
    }
}  이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
01 가방, 완전 가방, 다중 가방 dp(동적 기획 입문 dp)01 가방은 2진법으로 직접 표시할 수 있지만 데이터 양이 너무 많으면 시간을 초과하는 것이 폭력이다.01 가방의 사상은 바로 이 물품에 대해 내가 넣은 가치가 큰지 안 넣은 가치가 큰지 비교하여 방정식 f[i][v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.