c_cpp 给定一个数组,打印具有递增顺序的元素的最大子数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 给定一个数组,打印具有递增顺序的元素的最大子数组相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <vector>
using namespace std;

int get_longest_increasing_subarray (int A[], int N, int& left, int& right) {
    if(N == 1) return 1;
    int max_len = 1, i, start = 0;
    for(i=1; i<N; i++) {
        if(A[i-1] >= A[i]) {
            if(max_len < i - start) {   // POS1
                max_len = i - start;
                left = start;
                right = i-1;
            }
            start = i; // should be outside of POS1 ?
        }
    }
    if(i == N) {
        max_len = max(max_len, i-start);
        left = start;
        right = N-1;
    }
    return max_len;
}

int main() {
    int A[] = {1,5,2,4,6,0,1,2,3,4};
    int left = 0, right = 0;
    cout << get_longest_increasing_subarray(A, 10, left, right) << endl;
    cout << "[" << left << ", " << right << "]";
}

以上是关于c_cpp 给定一个数组,打印具有递增顺序的元素的最大子数组的主要内容,如果未能解决你的问题,请参考以下文章