get_i, target_j;
?int i = 0, j = 0;
?while(j < n)
?{
??j = right_max_pos[j];
??if(A[j] >= A[i])
??{
???if(j-i+1 > max_len)
???{
????target_i = i;
????target_j = j;
????max_len = j-i+1;
???}
???++j;
??}
??else
???++i;
?}
?return make_pair(target_i, target_j);
}
这里简单说一下测试方法,测试我们可以先测试最简单的实现方案,这里的第一种实现,因为这种实现简单,出现错误的可能性小,测试起来简单。测试时可以不考虑时间复杂度,只考虑正确性。然后我们使用此经过测试过的算法的输入输出去测试其他算法(对于结果)。
?
?