C#を使用してバックトラックすることにより、特定の配列から個別のサブセットを見つける方法は?
個別のサブセット問題により、指定された配列とは異なる組み合わせが得られます。
ターゲットが2の場合、配列から、番号2に対応するすべての組み合わせを取得します。ターゲットが3の場合、配列から、カウント3に対応するすべての組み合わせを取得します。次の例では、配列は[ 1,2,3]であり、ターゲットは2です。したがって、番号2「1,2」、「2,3」、「1,3」に対応するすべての組み合わせを使用します。
例
using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{ public class BackTracking{ public void Subsets(int[] array){ List<int> currentList = new List<int>(); List<string> results = new List<string>(); BackTrackkingCombination(array, 2, 0, currentList, results); foreach (var item in results){ StringBuilder s = new StringBuilder(); foreach (var item1 in item){ s.Append(item1.ToString()); } Console.WriteLine(s); s = null; } } public void BackTrackkingCombination(int[] array, int size, int startIndex, List<int> currentList, List<string> results){ if (currentList.Count == size){ StringBuilder s = new StringBuilder(); foreach (var item in currentList){ s.Append(item); } results.Add(s.ToString()); return; } for (int i = startIndex; i < array.Length; i++){ currentList.Add(array[i]); BackTrackkingCombination(array, size, i + 1, currentList, results); ; currentList.Remove(array[i]); } } } class Program{ static void Main(string[] args){ BackTracking b = new BackTracking(); int[] arrs = { 1, 2, 3 }; b.Subsets(arrs); } } }
出力
12 13 23
-
プロパティを使用してジャグ配列の長さを見つける方法は?
まず、ジャグ配列を宣言して初期化します。 int[][] arr = new int[][] { new int[] { 0, 0 }, new int[] { 1, 2 }, new int[] { 2, 4 }, new int[] { 3, 6 }, new int[] { 4, 8 } }; 次に、lengthプロパティを使用し
-
C#で配列の長さをどのように見つけますか?
配列の長さを見つけるには、Array.Length()メソッドを使用します。 例 例を見てみましょう- using System; class Program { static void Main(){ int[] arr = new int[10]; // finding length int arrLength = arr.Length; Console.WriteLine("Lengt