サイズ L の部分配列の最小数。配列のすべての部分配列についてそれを見つける必要があります。すべてのサブアレイを個別にスキャンする以外に方法はありますか?
私は1つの解決策を念頭に置いています:
a[n]//the array
minimum[n-l+1]//the array to store the minimum numbers
minpos=position_minimum_in_subarray(a,0,l-1);
minimum[0]=a[minpos];
for(i=1;i<=n-l-1;i++)
{
if(minpos=i-1)
{
minpos=position_minimum_in_subarray(a,i,i+l-1);
}
else {
if(a[minpos]>a[i+l-1]) minpos=i+l-1;
minimum=a[minpos];
}
}
これよりも良い解決策はありますか?