证明至少1次,最多2次* k - 1次倒置被移除
我不明白“反转被删除”是什么意思,我不知道从哪里开始。
答案 0 :(得分:3)
如果列表为1, 3, 2, 4
且已更改为1, 2, 3, 4
,那么您已删除了反转。
显然,您已删除了至少1次反转,因为a[i]
和a[i+k]
发生了故障。您最多删除2*k - 1
,因为如果a[i]
大于a[i+1], ... ,a[i+k-1]
,那么您可以修复k-1
次反转。同样a[i+k]
小于它下面的全部。因此,你可以获得的最多是k-1 + k-1 + 1
(最后一个是我们已经计算过的那个),等于2k - 1
示例:1,10,3,4,5,6,7,8,9,2
- >切换a[2]
与a[10]
,k = 8
,2现在小于10,而2也小于3-9,即7个数字。此外,10现在大于3-9,这也是7个数字,因此改进为7 + 7 + 1 = 15 = 2*8 - 1