好像昨天看了个博客,提到次大数函数。想了想写了一个备忘。 public int GetSecMax(int[] dataset) { if (dataset == null || dataset.Length == 1) throw new Exception("空或只有一个数"); //一个无解异常 int Max = dataset[0]; int secMax; bool hasMax = false; for (int i = 1; i < dataset.Length; i++) { if (!hasMax && (Max != dataset[i])) hasMax = true; if (Max < dataset[i]) Max = dataset[i]; } if (hasMax) //有解 { secMax = Max; bool hasSecMax = false; for (int j = 0; j < dataset.Length; j++) { if (!hasSecMax) { if (dataset[j] < Max) { secMax = dataset[j]; hasSecMax = true; } } else { if((secMax < dataset[j]) && (dataset[j] < Max)) secMax = dataset[j]; } } return secMax; } throw new Exception("无解"); } 转载于:https://www.cnblogs.com/shichao/archive/2007/01/12/618418.html