在c#中,需要選取數組中的最大值並將其總和爲下一個最小值。在整數列表中查找2個最大數字的總和
預期成果是5 + 4
在foreach
試過情侶語法,我無法得到確切的輸出。尋找一些幫助
int[] arr =new int[] {1,2,3,4,5};
foreach (int i in arr)
{
}
在c#中,需要選取數組中的最大值並將其總和爲下一個最小值。在整數列表中查找2個最大數字的總和
預期成果是5 + 4
在foreach
試過情侶語法,我無法得到確切的輸出。尋找一些幫助
int[] arr =new int[] {1,2,3,4,5};
foreach (int i in arr)
{
}
一些LINQ像下面應該解決這個問題:
arr.OrderByDescending(z=>z).Take(2).Sum()
注意排序是緩慢的,你可能實際上要找到最大,而不是兩次......
doh!你打敗了我:) – Kell
啊...... LINQ的美麗......讓人感到非常感謝在C#中進行生活編程。 –
int[] arr = new int[] { 1, 2, 3, 4, 5 };
int max = arr[0];
int index = -1;
int total=0;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] > max)
{
max = arr[i];
index = i;
}
}
if(index != -1) //if you have predecessor
total = max+arr[index-1];
else //if you don't have predecessor
total = max;
var result = (from x in arr orderby x descending select x).Take(2).Sum();
什麼是'前輩'?總和在哪裏?預期的結果是什麼?如果你不能得到確切的輸出,那麼你有什麼輸出? –
4票關閉。我提到在數組內部說出值4。預期的輸出是4 + 5 – goofyui
你可能想問一下http://codegolf.stackexchange.com/,因爲沒有明確的理由說明爲什麼會使用'foreach'來完成任務。 –