Given an array, print the largest subarray that has elements in an increasing order
#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 << "]";
}