Subsets1解題報告

2021-07-13 19:36:07 字數 1267 閱讀 8456

問題描述:

given a set of distinct integers, nums, return all possible subsets.

note: the solution set must not contain duplicate subsets.

for example,

if nums = [1,2,3], a solution is:

[[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

]解題思路

方法1:backtracing

回溯法的思路是,逐個掃瞄nums中的元素,每掃瞄乙個將該元素加入子集中,處理下乙個字元。

class solution 

void subsetsrec(vector& nums, vector> & res, vector& sub_set, int i)

}}

方法2:逐步新增數字

仔細觀察一下,當nums中沒有元素的時候,subset集合為:;

新增乙個元素a1,subset集合為:,[a1];

新增元素a2,subset集合為:,[a1],[a2],[a1,a2];

新增元素a3,subset集合為:,[a1][a2][a1,a2],[a3],[a1,a3],[a2,a3],[a1,a2,a3];

可以看出每新增乙個元素,subset集合中就是把前乙個subset集合中的元素複製乙份然後在後面新增該新加的元素。

**如下:

class solution 

}return rtn;

}}

方法3:位元組

在nums中選取subset集合相當於對每乙個元素進行取捨,每乙個元素都有選、不選兩種選擇。所以個nums的subset集合有2^n個,n是nums的元素個數。所以這相當於對n位二進位制表示,1表示選擇這個數,0表示不選這個數。

**如下:

class solution 

return rtn;

}vectorgetsubset(vector&nums,int n)

return rtn;

}};

Subsets 系列 Leetcode解題記錄

寫這個系列是因為紀念一下去年的今天,就是2015年的9月14號,刷題第一天,今天是一週年紀念日。當時只敢做easy還得抄答案的我想啥時候能做上medium啊,事到如今,感覺都不是啥障礙了,這道題也已經做了第四遍了,抽出來的dfs遞迴模板放在這裡總結一下。這題內容就是就是給個陣列,裡面的數字都是獨一無...

解題報告1

這個暑假我的同學們正在做usaco上的訓練題目。要求他們對所完成的題目寫解題報告?看了幾篇之後,發現解題報告多為上載的解題 以及簡述的解題思路。我在想解題報告就應該是這樣的嗎?我從來沒有寫過解題報告。為什麼要寫解題報告?解題報告應該怎樣寫?1.為什麼要學習寫解題報告?大家知道 n 項平方和的公式 1...

賽碼解題報告(1)

題目描述 果園裡有堆蘋果,n 1 n 9 只熊來分。第一隻熊把這堆蘋果平均分為n份,多了乙個,它把多的乙個扔了,拿走了乙份。第二隻熊把剩下的蘋果又平均分成n份,又多了乙個,它同樣把多的乙個扔了,拿走了乙份,第 三 第四直到第n隻熊都是這麼做的,問果園裡原來最少有多少個蘋果?輸入輸入1個整數,表示熊的...