3 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個贊
這不是最迷人的方法,但是有效。
(必須有using System.Linq;)
int maxValue = anArray.Max();
int maxIndex = anArray.ToList().IndexOf(maxValue);

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個贊
int[] anArray = { 1, 5, 2, 7 };
// Finding max
int m = anArray.Max();
// Positioning max
int p = Array.IndexOf(anArray, m);

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個贊
如果索引未排序,則必須至少遍歷數(shù)組一次以找到最大值。我會使用一個簡單的for循環(huán):
int? maxVal = null; //nullable so this works even if you have all super-low negatives
int index = -1;
for (int i = 0; i < anArray.Length; i++)
{
int thisNum = anArray[i];
if (!maxVal.HasValue || thisNum > maxVal.Value)
{
maxVal = thisNum;
index = i;
}
}
這比使用LINQ或其他單線解決方案的方法更為冗長,但可能更快一些。確實(shí)沒有比O(N)更快的方法。
- 3 回答
- 0 關(guān)注
- 1576 瀏覽
添加回答
舉報(bào)