zoukankan      html  css  js  c++  java
  • 78. Subsets

    题目链接:https://leetcode.com/problems/subsets/

    解题思路:

    这里是经典回溯法解决问题,new ArrayList<>(item)这里是相当于new了一个新对象,不是在原始的对象上操作。

    深度优先搜索

    我会把所有的用回溯的题全部放在一起。

     1 import java.util.ArrayList;
     2 class Solution {
     3     public List<List<Integer>> subsets(int[] nums) {
     4         
     5         List<List<Integer>> res = new ArrayList<>();
     6         
     7         List<Integer> item = new ArrayList<>();
     8         
     9         Arrays.sort(nums);
    10         
    11         dfs(res,item,nums,0);
    12         
    13         return res;
    14         
    15         
    16     }
    17     
    18     public void dfs(List<List<Integer>> res,List<Integer>item,int []nums,int start)
    19     {
    20         res.add(new ArrayList<>(item));//这里相当于新创建了一个item对象,和原先的item已经不是同一个地址了
    21         
    22         for(int i=start;i<nums.length;i++)
    23         {
    24             item.add(nums[i]);
    25             dfs(res,item,nums,i+1);
    26             
    27             item.remove(item.size()-1);
    28         }
    29         
    30     }
    31 }
  • 相关阅读:
    bug
    UIFont
    OC
    iOS 之 多线程一
    OC 之 const
    我的读书单
    算法之回文数判断
    排序算法 之 一
    isEqual
    xcode 必用插件二
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10956081.html
Copyright © 2011-2022 走看看