个人觉得01背包解最简单,只是时间复杂度需优化。 public static void MultipleEle(int []source, int sum) {     List<int> tmp = new List<int>();     MultipleEleCore(source, sum, source.Length - 1, tmp); } public static void MultipleEleCore(int []source, int sum, int index, List<int>ilist) { if (source == null || ilist == null || source.Length == 0)     { return;     }     if (index < 0)     {     return;     }     if (sum == source[index])     { //if (ilist.Count == 2) { Console.Write(source[index] + " "); foreach (int item in ilist) { Console.Write(item + " "); } Console.WriteLine(); }     }     ilist.Insert(0, source[index]);     MultipleEleCore(source, sum - source[index], index - 1, ilist);     ilist.RemoveAt(0);     MultipleEleCore(source, sum, index - 1, ilist); }
点赞 评论

相关推荐

02-05 08:18
四川大学 Java
在思考的熊熊很讨厌吃香菜:不是,我门头沟学院呢?这都没排上?
点赞 评论 收藏
分享
牛客网
牛客企业服务