首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找第二个最小值算法

查找第二个最小值算法
EN

Stack Overflow用户
提问于 2016-09-23 01:48:59
回答 2查看 96关注 0票数 2

我想找出三个数字的第二个最小值。

我有一个黑盒,它获取两个输入数字,黑盒返回数字之间的最大值。

另外,我有一个黑盒,它返回最小值。

现在我有一个框,它有3个数字作为输入,它需要返回第二个min。

你能帮我解决这个问题吗?只用两个黑盒怎么解决这个问题?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-09-23 02:11:29

我可以通过3次使用黑盒来解决这个问题。让我们假设每个元素都是a,b,c。找到a和b的最小值,b和c的最小值。然后你找到这两个答案中的最大值,你就得到了第二个最小值。如果只返回b,则找到a和c的最小值。

票数 1
EN

Stack Overflow用户

发布于 2016-09-23 07:31:26

代码语言:javascript
复制
Inputs: a, b, c

Level 1 (filtering out the biggest value):
min(a,b) -> min_ab
min(a,c) -> min_ac
min(b,c) -> min_bc

Level 2 (selecting the highest remaining value, step 1):
max(min_ab, min_bc) -> m*

Level 3 (step 2):
max(m*, min_ac) -> solution

Gives a total of 5 boxes.

a --+--\
    |   min --\
b -----<       max --\
    |   min --/       max --
c -----<             /
    |   min --------/
    \--/

Alternatively you can do 3 maxes first and then 2 mins.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39645701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档