leetcode(78)子集
生活随笔
收集整理的這篇文章主要介紹了
leetcode(78)子集
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
子集
解題思路:遞歸+紅色區(qū)域的寫法很重要,在這里要千萬注意
class Solution {public List<List<Integer>> subsets(int[] nums) {List<Integer[]> result = new ArrayList<Integer[]>();List<List<Integer>> resultList = new ArrayList<List<Integer>>();int len = nums.length;subsets2(result,nums,len);for(Integer[] i : result){resultList.add(Arrays.asList(i));}return resultList;}public void subsets2(List<Integer[]> result, int[] nums, int len) {if(len==0){Integer[] ele = new Integer[len];result.add(ele);return;}subsets2(result, nums, len - 1);Integer[] ele = null;Integer[] temp = null;int size = result.size();for(int i=0;i<size;++i){temp = result.get(i);ele = new Integer[temp.length+1];System.arraycopy(temp,0,ele,0,temp.length);ele[temp.length] = nums[len-1];result.add(ele);}} }?第二種方法:用List不用數(shù)組
class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> result = new ArrayList<List<Integer>>();int len = nums.length;subsets2(result,nums,len);return result;}public void subsets2(List<List<Integer>> result, int[] nums, int len) {if(len==0){List<Integer> ele = new ArrayList<Integer>();result.add(ele);return;}subsets2(result, nums, len - 1);List<Integer> ele = null;List<Integer> temp = null;int size = result.size();for(int i=0;i<size;++i){temp = result.get(i);ele = new ArrayList<Integer>(temp);ele.add(nums[len-1]);result.add(ele);}} }?
轉(zhuǎn)載于:https://www.cnblogs.com/erdanyang/p/11273681.html
總結(jié)
以上是生活随笔為你收集整理的leetcode(78)子集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quzrtz.net 示例
- 下一篇: wget安装