相关疑难解决方法(0)

我们如何有效地从阵列中找到第二个最大值?

是否可以通过遍历数组一次从整数数组中找到第二个最大数字?

作为一个例子,我有一个由五个整数组成的数组,我希望从中找到第二个最大数.以下是我在采访中的尝试:

#define MIN -1
int main()
{
    int max=MIN,second_max=MIN;
    int arr[6]={0,1,2,3,4,5};
    for(int i=0;i<5;i++){
        cout<<"::"<<arr[i];
    }
    for(int i=0;i<5;i++){
        if(arr[i]>max){
            second_max=max;
            max=arr[i];          
        }
    }
    cout<<endl<<"Second Max:"<<second_max;
    int i;
    cin>>i;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然而,采访者想出了测试用例int arr[6]={5,4,3,2,1,0};,这使得它无法if第二次进入这种情况.我对面试官说,唯一的办法是解析数组两次(两个for循环).有人有更好的解决方案吗?

c++ arrays algorithm

19
推荐指数
3
解决办法
4万
查看次数

标签 统计

algorithm ×1

arrays ×1

c++ ×1