是否有可能在一个数组中找到2个最大的数字,并且仅在集合中循环一次?
我将其作为面试问题,但并没有及时得到解决。
最佳答案
看起来很简单。
int[] nums = { 3, 1, 4, 1, 5, 9, 2, 6 };
int max1 = -1;
int max2 = -1;
foreach (int num in nums)
{
if (num > max1) { max2 = max1; max1 = num; }
else if (num > max2) { max2 = num; }
}
例如:
// 3: max2 = -1; max1 = 3;
// 1: max2 = 1;
// 4: max2 = 3; max1 = 4;
快速说明:
关于c# - 是否可以通过一次通过获得列表中的2个最大数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7808995/