网站建设seo优化公司,购物网站开题报告,推广赚钱网,政务网站优化文章目录 一、题目二、C# 题解 一、题目 幂集。编写一种方法#xff0c;返回某集合的所有子集。集合中不包含重复的元素。
说明#xff1a;
解集不能包含重复的子集。
示例: 输入#xff1a; nums [1,2,3] 输出#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1… 文章目录 一、题目二、C# 题解 一、题目 幂集。编写一种方法返回某集合的所有子集。集合中不包含重复的元素。
说明
解集不能包含重复的子集。
示例: 输入 nums [1,2,3] 输出 [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 点击此处跳转题目。
二、C# 题解 记集合为 Q(n)n 为集合中元素个数不重复。Sub(i) 表示集合中 i 个元素组成的所有子集则有如下递推关系 S u b ( i 1 ) S u b ( i ) ∪ S u b ( i ) . A d d ( e l e m ( i 1 ) ) Sub(i 1)Sub(i) \cup Sub(i).Add(elem(i1)) Sub(i1)Sub(i)∪Sub(i).Add(elem(i1))
其中 e l e m ( i 1 ) elem(i1) elem(i1) 表示新增加的第 i 1 i 1 i1 个元素。以集合 { 1 , 2 , 3 } \{1,2,3\} {1,2,3} 为例 S u b ( { 0 } ) { { } } Sub(\{0\})\{\{\}\} Sub({0}){{}} S u b ( { 0 , 1 } ) { { } } ∪ { { 1 } } { { } , { 1 } } Sub(\{0,1\})\{\{\}\}\cup\{\{\bold{1}\}\}\{\{\},\{1\}\} Sub({0,1}){{}}∪{{1}}{{},{1}} S u b ( { 0 , 1 , 2 } ) { { } , { 1 } } ∪ { { 2 } , { 1 , 2 } } { { } , { 1 } , { 2 } , { 1 , 2 } } Sub(\{0,1,2\})\{\{\},\{1\}\}\cup\{\{\bold{2}\},\{1,\bold{2}\}\}\{\{\},\{1\},\{2\},\{1,2\}\} Sub({0,1,2}){{},{1}}∪{{2},{1,2}}{{},{1},{2},{1,2}} S u b ( { 0 , 1 , 2 , 3 } ) { { } , { 1 } , { 2 } , { 1 , 2 } } ∪ { { 3 } , { 1 , 3 } , { 2 , 3 } , { 1 , 2 , 3 } } { { } , { 1 } , { 2 } , { 3 } , { 1 , 2 } , { 1 , 3 } , { 2 , 3 } , { 1 , 2 , 3 } } Sub(\{0,1,2,3\})\{\{\},\{1\},\{2\},\{1,2\}\}\cup\{\{\bold{3}\},\{1,\bold{3}\},\{2,\bold{3}\},\{1,2,\bold{3}\}\}\{\{\},\{1\},\{2\},\{3\},\{1,2\},\{1,3\},\{2,3\},\{1,2,3\}\} Sub({0,1,2,3}){{},{1},{2},{1,2}}∪{{3},{1,3},{2,3},{1,2,3}}{{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}
public class Solution {public IListIListint Subsets(int[] nums) {IListIListint ans new ListIListint();ans.Add(new Listint()); // 添加空集if (nums.Length 0) return ans;foreach (int t in nums) {int cnt ans.Count; // 取出原来的长度for (int j 0; j cnt; j) {// 复制原来所有的子集将新元素添加进去Listint tmp new Listint(ans[j]) { t }; ans.Add(tmp);}}return ans;}
}时间128 ms击败 100.00% 使用 C# 的用户内存40.76 MB击败 100.00% 使用 C# 的用户