RCI*_*CIX 16
试试这个(使用LINQ):
int secondHighest = (from number in numbers
orderby number descending
select number).Skip(1).First();
Run Code Online (Sandbox Code Playgroud)
Gen*_*man 15
您可以对数组进行排序并在第二个索引处选择项目,但是下面的O(n)循环会快得多.
int[] myArray = new int[] { 0, 1, 2, 3, 13, 8, 5 };
int largest = int.MinValue;
int second = int.MinValue;
foreach (int i in myArray)
{
if (i > largest)
{
second = largest;
largest = i;
}
else if (i > second)
second = i;
}
System.Console.WriteLine(second);
Run Code Online (Sandbox Code Playgroud)