首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于功能设计的问题

关于功能设计的问题
EN

Stack Overflow用户
提问于 2011-02-10 16:43:57
回答 4查看 474关注 0票数 4

我刚刚有一个面试问题,问我如何设计一个简单的函数--在Int中找到第二大数字。

代码语言:javascript
运行
复制
int findSecondLargest(int * arr, int len){
    int second = 0;
    ...

    return second;
}

然而,有人问我如何处理这些问题。

如果

  1. 小于2(我认为我们可以返回一个特殊值,比如0,或者MinInt.)
  2. ,但是如果第二大值是0。(因为在这种情况下,我无法区分错误和正常返回值。因此,如果数组是{1,1,1}(因为1是最大的,而不是第二大的,那么我可能会抛出一个异常)
  3. 。所以我可能会抛出一个异常)

我真的很困惑。我认为不可能处理所有的情况。我们通常必须记录函数的使用情况,而不是抛出异常。

希望你能给点建议。谢谢

//函数体是我自己写的。我真的很喜欢Donotalo和PigBen的设计

EN

Stack Overflow用户

回答已采纳

发布于 2011-02-10 17:00:14

按照标准库模型,在搜索序列时,我们不返回要查找的值,而是将迭代器返回到值(在本例中是指针)。如果我们找不到值,则返回一个迭代器到最后一个元素,签名如下所示:

代码语言:javascript
运行
复制
// end is not the last element, it is one past the last element
int * findSecondLargest(int * begin, int * end);
票数 11
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4959999

复制
相关文章

相似问题

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