TopCoder SRM575: TheSwapsDivTwo
スワップの全パターンを試す。
String.Join
に String 以外の配列をそのまま渡しても問題ないようだ。
public class TheSwapsDivTwo { static public void Swap<T>(ref T a, ref T b) { T t = a; a = b; b = t; } public int find(int[] sequence) { int n = sequence.Length; var set = new HashSet<string>(); for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { Swap(ref sequence[i], ref sequence[j]); set.Add(String.Join(",", sequence)); Swap(ref sequence[i], ref sequence[j]); } } return set.Count; } }