识别通过删除不超过一个元素对数组进行排序的可能性

时间:2016-07-03 19:50:47

标签: c++ algorithm

程序获取大量[2; 2000。问题是:在删除不超过一个元素后,该数组是否可以排序。

示例:

2 16 3 3 - 删除'16'后,它将是非增加数组。

4 16 3 15 - 无法对其进行排序。

简单方法:删除第一个不正确的元素并检查排序的事实。如果存在大量阵列或者阵列是大型的,则需要花费太多时间。 除个案外,不正确的元素是第一个或最后一个,并且数组大小小于4,以什么方式可以加速这种可能性

1 个答案:

答案 0 :(得分:2)

只需遍历数组,如果您注意到N_x > N_x+1删除了N_x,并标记您删除了1个数字...

如果您发现另一个N_y > N_y+1 y!=x,则无法对其进行排序。

我会为你留下实施,因为这是你的功课。