给出一个数组A,找出一对 (i, j)使得A[i] <= A[j] (i < j)并且j-i最大 (二)

2015-11-21 01:21:10 · 作者: · 浏览: 19
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);
}
这里简单说一下测试方法,测试我们可以先测试最简单的实现方案,这里的第一种实现,因为这种实现简单,出现错误的可能性小,测试起来简单。测试时可以不考虑时间复杂度,只考虑正确性。然后我们使用此经过测试过的算法的输入输出去测试其他算法(对于结果)。

?


?