[면접문제] 연속 서브그룹의 최대 합
하나의 정형수조가 있는데, 그 안의 원소는 정수와 음수가 있고, 하나 또는 연속된 여러 원소가 하나의 자수조를 구성하여 모든 자수조의 합의 최대치를 구한다.즉 연속 서브 그룹의 최대와 문제다.
분석하다.
이 문제는 보통 동태 기획을 사용하는데 면접에서 물어보는 것도 동태 기획을 고찰하는 것이다.f(i)는 i로 끝나는 하위 그룹의 최대 합을 나타낸다.이왕 i로 끝났으니 어디서부터 시작할까?j가 i의 왼쪽에 있는데 만약에 A[0]에서 A[j]까지의 합이 마이너스라면 f(i)는 j+1부터 시작해야 한다.그럼 f(i)의 추이 공식은 어떻게 계산합니까?f(i) = f(i-1) + A[i];조건은 f(i-1) > 0 f(i) = A[i]입니다.조건은 f(i-1)<=0이 요구하는 결과 ans는 모든 f(i)의 최대치와 같다.
코드
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int len = array.size();
if(len == 0)
return 0;
int k_sum = array.at(0);
int max_sum = array.at(0);
for(int i = 1; i < len; i++){
if(k_sum < 0)
k_sum = array.at(i);
else
k_sum += array.at(i);
max_sum = max(k_sum, max_sum);
}
return max_sum;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PHP 배열에서 요소의 값이 최대 값인 키 이름을 가져옵니다.Qiita 에 " "@ PHP 매뉴얼 데이터 최대값이 나타나는 순서대로 획득 결과 키를 정렬한 후 가져오기 결과 @ paiza.IO PHP v5.6.40, v7.1.33, v7.4.4 " "@ StackOverflo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.