c_cpp 最大子阵列和子序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最大子阵列和子序列相关的知识,希望对你有一定的参考价值。

//https://www.hackerrank.com/challenges/maxsubarray
#include <bits/stdc++.h>
using namespace std;

void maxSubarray(vector<int> arr) {
    long n= arr.size();

    //Kadane's algo for maxSubarray
    int maxi=arr[0],curr=arr[0],m= arr[0];
    for (long i=1;i<n;i++) {
        curr= max(arr[i], curr+arr[i]);
        maxi= max(maxi,curr);
        m= max(m+arr[i], max(arr[i],m));
    }
    cout<< maxi<< " "<<m<< "\n";
}

int main() {
    int t;
    cin>>t;
    while(t-->0){
        long n;
        cin>>n;
        vector<int> arr(n);
        for (long i=0;i<n;i++)
            cin>>arr[i];

        maxSubarray(arr);
}
}

以上是关于c_cpp 最大子阵列和子序列的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 53.最大子阵列

c_cpp 53.最大子阵列

c_cpp 最大乘积子阵列

c_cpp 最大子阵列总和。在具有最大总和的数组(包含至少一个数字)中查找连续的子数组。

求最大和子序列

c_cpp 最大子序列和