私はC#のヘルプが必要です。私は最大の和を有する3つの値となるような値を並べ替える次の3つの値(10個の組み合わせの可能性)の任意の組み合わせのための最大値を見つけるために必要と配列のサブセットの最大値を見つける
Int[] arrayValues = { 10, 8, 6, 5, 3 };
:私は5つの値を持つ整数の配列を有します最後の3つのポジションにある。
私はC#のヘルプが必要です。私は最大の和を有する3つの値となるような値を並べ替える次の3つの値(10個の組み合わせの可能性)の任意の組み合わせのための最大値を見つけるために必要と配列のサブセットの最大値を見つける
Int[] arrayValues = { 10, 8, 6, 5, 3 };
:私は5つの値を持つ整数の配列を有します最後の3つのポジションにある。
アルゴリズムは次のとおりです。
コードは、あなただけの問題として、要件を投稿する以上のことを行う必要があり、このような何か(それは、最適化することができます)、
int[] orginalArray = { 10, 8, 6, 5, 3 };
int[] copyArray = new int[orginalArray.Length];
int[] resultArray = new int[orginalArray.Length];
// Make a copy of the orginal array
Array.Copy(orginalArray,0, copyArray, 0,orginalArray.Length);
// Sort the copied array in ascendng order (last 3 elements are the largest 3 elements)
Array.Sort(copyArray);
// Array to store the largest elements
int[] largest = new int[3];
for (int i = copyArray.Length - 3, j = 0; i < copyArray.Length; i++, j++)
{
largest[j] = copyArray[i];
}
// Sum of the largest elements
int largestSum = largest.Sum();
// Copy the non largest elements to the result array (in the original order)
for (int i = 0, j=0; i < orginalArray.Length; i++)
{
if (!largest.Contains(orginalArray[i]))
{
resultArray[j++] = orginalArray[i];
}
}
// Copy the largest elements to the last 3 positions
for(int i=largest.Length - 1, j=0;i<resultArray.Length;i++, j++)
{
resultArray[i] = largest[j];
}
// Result - resultArray[] : 5 3 6 8 10
// Largest sum combination - largest[]: 6 8 10
// Sum of largest combination - largestSum: 24
です。あなたが試したことのいくつかを教えてください。この質問と、それをどのように解決するのが最善の方法かを考えている証拠をいくつか与えてください。好ましくは、適切に動作しないコードのサンプルを表示してください。しかし、最も重要なのは、*実際の質問*です。 –
宿題?(15文字...) –
が見つかりました、10が最大です:) –