int secondMaxNumber(int *arr, int n)
{
if(arr == NULL)
return -1;
int max = arr[0];
int i = 0;
while(arr[i] == max)
{
i++;
}
int second = arr[i];
for(; i < n; i++)
{
if(arr[i] > max)
{
second = max;
max = arr[i];
}
else
{
if(arr[i] > second)
second = arr[i];
}
}
if(i >= n)
return -1;
return second;
}
找出第二大数字需要注意一下集中情况:
1.前一位或前几位都是最大值:如6,6,6,5,4,3;
2.全是最大值:5,5,5,5,5