问题描述: 线性时间内,找到数组中第二大的元素
思路: 设置两个临时变量:max初值为第一个元素, sub_max初值为-65536(假设在64位机)。遍历数组,如果比max大,更新max;否则,如果比sub_max大,则赋值给sub_max。
int getSubMax(int *a , int len)
{
int max = a[0];
int sub_max = -65536;
for(int i = 1; i < len; i++)
{
if(a[i]>max)
max = a[i];
else
if (sub_max < a[i])
sub_max = a[i];
}
return sub_max;
}