leetcode系列---3Sum C#code
Function:
public static List<int[]> SumSet(int[] array) { List<int[]> result = new List<int[]>(); for (int i = 0; i < array.Length; i++) { int differ = -array[i]; for (int j = i + 1; j < array.Length; j++) { var a = array.Select((chr, index) => new { chr, index }).Where(chr=>chr.chr == differ - array[j]); if (a.ToList().Count > 0) { int[] aa ={ array[i],array[j],a.ToList()[0].chr}; result.Add((aa.OrderBy(n => n)).ToArray()); } } } HashSet<int[]> set = new HashSet<int[]>(result); result.Clear(); result.AddRange(set); return result; }
控制台展示:
static void Main(string[] args) { { Console.WriteLine("请输入数组:"); string ss = Console.ReadLine(); string[] str = ss.Split(','); int[] arry=new int[str.Count()]; for (int i = 0; i < str.Count(); i++) { string sss = str[i]; arry[i] = Convert.ToInt32(sss); } Console.WriteLine("满足条件的组合有:"); List<int[]> result = SumSet(arry); foreach (int[] ar in result) { foreach (int i in ar) { Console.Write(i); } Console.Write("_"); } Console.ReadLine(); } }
问题点:List<int> 去重复失败。。。。