排序数组的一部分被反转
Part of a sorted array is reversed
给定一个已排序的数组,其中一部分是反向的。我们被要求完全分类。例如:
ip - 2 4 5 7 13 11 9 14 19
op - 2 4 5 7 9 11 13 14 19
当我们知道给定数组是按升序还是降序排序时,这很容易解决。如果不知道阶数,怎么解?
,
ip - 19 17 2 6 8 10 1
op - 19 17 10 8 6 2 1
当输入的第一部分是升序而其余部分是降序时,也会产生歧义。在这种情况下,可以考虑输出任何顺序。
- 假设最终结果应该是升序的。运行你的算法一次。
- 检查输出是否为升序。如果是,我们就完成了;否=> 3
- 回滚到原始输入,假设最终结果应该下降,运行你的算法一次。
- 检查输出是否真的降序。如果是,我们就完成了;
相关文章:
- 在 MPI 中共享数组的一部分
- 将constexpr字节数组与缓冲区的一部分(指向数据的指针)进行比较
- 需要从字符串数组的一部分访问元素
- 如何在C++中创建 2d 数组,其中一部分包含循环计数器,另一部分包含数字列表?
- 如何反转数组的一部分?
- 如何在数组的一部分中查找特定值的第一个元素
- 如何在C++中比较数组中字符串的一部分的字符串
- 将字符数组的一部分提取为 char*
- 字符数组仅占用字符串的一部分
- 不允许删除数组的一部分,为什么
- 删除动态数组的一部分
- 如何翻转数组的一部分
- 发送字节数组的一部分
- for循环不包括需要包含数组的一部分
- C++将字符数组的一部分复制到另一个字符数组
- 如何将数组的一部分从 int 转换为浮点数并将值设置为另外两个数组
- 复制存储在内存映射文件中的数组的一部分
- 如何将此INT数组的一部分复制到C 中的另一个数组
- 有条件地确定字符串是否是数组的一部分
- 通过指向函数的指针循环传递数组的一部分