博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode — subsets-ii
阅读量:7028 次
发布时间:2019-06-28

本文共 1653 字,大约阅读时间需要 5 分钟。

import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * Source : https://oj.leetcode.com/problems/subsets-ii/ * * * Given a collection of integers that might contain duplicates, S, return all possible subsets. * * Note: * * Elements in a subset must be in non-descending order. * The solution set must not contain duplicate subsets. * * For example, * If S = [1,2,2], a solution is: * * [ *   [2], *   [1], *   [1,2,2], *   [2,2], *   [1,2], *   [] * ] * */public class SubSet2 {    private List
> result = null; /** * * * @return */ public List
> subset (int[] arr) { result = new ArrayList
>(); List
set = new ArrayList
(); Arrays.sort(arr); recursion(arr, 0, set); return result; } private void recursion (int[] arr, int index, List
set) { if (index == arr.length) { return; } // 初始化上一次出栈的元素为当前将要进栈的元素-1,为了不和将要进栈的元素相同 int last = arr[index]-1; for (int i = index; i < arr.length; i++) { // 如果上一次出栈的元素等于准备进栈的元素,则说明两个元素一样,跳过 if (last == arr[i]) { continue; } set.add(arr[i]); List
temp = new ArrayList
(set); result.add(temp); recursion(arr, i + 1, set); last = set.remove(set.size()-1); } } private static void print (List
> list) { for (List
arr : list) { System.out.println(Arrays.toString(arr.toArray(new Integer[arr.size()]))); } System.out.println(); } public static void main(String[] args) { SubSet2 subSet2 = new SubSet2(); int[] arr = new int[]{1,2,2}; int[] arr1 = new int[]{1,2,3,3,3,3,4}; print(subSet2.subset(arr)); print(subSet2.subset(arr1)); }}

转载于:https://www.cnblogs.com/sunshine-2015/p/7740501.html

你可能感兴趣的文章
管理表空间和数据文件——建立表空间——建立本地管理表空间
查看>>
使用Spring Cloud Feign
查看>>
Ambari Agent 架构
查看>>
NumPy基础知识:数组和矢量计算
查看>>
NOJ-1162-简单编码
查看>>
jsp页面执行原理及获取上下文根方式
查看>>
牛客小白月赛6 E 对弈 思维
查看>>
linux RAC 安装失败完全卸载
查看>>
自己封装了一个EF的上下文类.,分享一下,顺便求大神指点
查看>>
Http的Get和Post--扫盲篇
查看>>
xdebug 配置
查看>>
Linux(Ubuntu)之设定开机自启动
查看>>
http状态码的分类
查看>>
react native redux saga增加日志功能
查看>>
hibernate缓存机制(二级缓存)
查看>>
iOS 小方法
查看>>
php 快速fork出指定个子进程
查看>>
1、算法简介
查看>>
HDU 4278 卡特兰,区间DP
查看>>
04分类整理:会搜索还不够,整理、分类、归纳
查看>>