将两个数字替换为给定数组中介于两个之间的单个数字

replacing two numbers by a single number which is in-between two in an given array?

本文关键字:数字 数组 于两个 单个 之间 两个 替换      更新时间:2023-10-16

问题是我们有一个长度为 N 的数组 A 和一个随机数 X。

从数组 A 中选择任意两个数字,例如 a,b,并将它们替换为表示 Y 的单个数字,以便 a<=y<=b。

在 N-1 操作之后,数组 A 中应该只剩下一个数字。检查我们是否可以得到这个数字?

我认为它的递归问题,但我无法接近?请告诉如何接近。

假设数组是a1,a2,..,排序顺序。所以最小值是 a1,最大值是 an;

you may choose a1,a2 and replace with a1. 
Then after choose a1, a3(as a2 is gone now) and replace by a1.
.
Similarly you may choose a1, an-1 {a2 to an-2 is gone now} and replace by a1.
Now you are left with 2 number a1 and an. So a1<=x<=an, ans is yes otherwise two. 

这是贪婪的方法,所以需要一个证明。我要留给你。

只是一个旁注:回避和迭代具有相同的数学能力。只是它们有不同的可视化效果。