My Fifty-fifth Page - 子集 - By Nicolas
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                My Fifty-fifth Page - 子集 - By Nicolas
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                這篇page是針對leetcode上的78.子集所寫的。小尼先簡單的說明一下這道題的意思,就是給出一個整數數組nums,數組中的元素互不相同,需要返回該數組所有可能的子集。要求是子集不能包含重復的子集。
小尼在這里先給出簡單的解題思路,其實思路還是比較簡單的,我們其實首先需要理解的就是一個集合的子集的概念,其實這個概念也是比較簡單的,我們在這里進行的方法無非也就是進行一個遞歸遍歷,但是這里呢我們需要注意的一個點呢就是空集也是屬于子集的一個,所以在等會給出的代碼中,應該首先放入的就是空集,然后我們的我們再做一個判斷和一個遞歸就可以了,小尼接下來給出完整的代碼:
class Solution {List <List<Integer>> result = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> subsets(int[] nums) {subsetsHelper(nums,0);return result;}public void subsetsHelper(int[] nums, int startIndex){result.add(new ArrayList<>(path));if(startIndex >= nums.length){return ;}for(int i = startIndex;i<nums.length;i++){path.add(nums[i]);subsetsHelper(nums,i+1);path.removeLast();}} }其實就是上面的result.add(new?ArrayList<>(path));這一句話在第一次進入遞歸的時候就將空集合放入了,然后我們在之后不斷遞歸的過程中,我們的集合的數量達到num.length的時候我們的遞歸就結束,其他的操作其實還是比較簡單的也就是不斷的加入然后刪除就可以了。希望小伙伴們可以得到幫助
總結
以上是生活随笔為你收集整理的My Fifty-fifth Page - 子集 - By Nicolas的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Moebius for SQLServe
- 下一篇: My Thirty-Second Pag
