2010-12-12 11 views
-1

私はC#のヘルプが必要です。私は最大の和を有する3つの値となるような値を並べ替える次の3つの値(10個の組み合わせの可能性)の任意の組み合わせのための最大値を見つけるために必要と配列のサブセットの最大値を見つける


Int[] arrayValues = { 10, 8, 6, 5, 3 }; 

:私は5つの値を持つ整数の配列を有します最後の3つのポジションにある。

+6

です。あなたが試したことのいくつかを教えてください。この質問と、それをどのように解決するのが最善の方法かを考えている証拠をいくつか与えてください。好ましくは、適切に動作しないコードのサンプルを表示してください。しかし、最も重要なのは、*実際の質問*です。 –

+0

宿題?(15文字...) –

+1

が見つかりました、10が最大です:) –

答えて

1

アルゴリズムは次のとおりです。

  1. ソート昇順に配列は
  2. 最終の3つの要素は、中3の最大要素であり、配列ie最大の和との組み合わせ
  3. 最大の要素の合計を見つける
  4. 結果配列に最大ではない要素を格納し、元の順序を維持します。
  5. 結果配列の最後に最大の要素を追加します。

コードは、あなただけの問題として、要件を投稿する以上のことを行う必要があり、このような何か(それは、最適化することができます)、

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 
0

昇順でソートされた配列です。

arrayValues.sort() 

が動作して昇順に番号をリストする必要があり

+1

あなたは 'Array.Sort(arrayValues);' –

+0

@Cody:Yeah申し訳ありませんが、私はほとんどの時間IEnumerableを使い、Array.sort()とIEnumerable.sort()を混ぜる傾向があります。 – gprasant

+1

'Array.sort'も' IEnumerable.sort'もありません。 'Array.Sort'がありますが、' IEnumerable.Sort'はありません。 – jason

関連する問題