求一个集合的所有子集(java实现)

Java之获取集合的所有子集(排列组合...) 最近因为elasticsearch数据结构设计,设计一种需要字符串数组中的所有组合。。。于是各种找…最终在Hutool中找到 目录 第一步:添加依赖 第二步:再次封装 第三步:测试 附录 第一步:添加依赖 依赖:Hutool(不知道的请百度) 它的MathUtil类里面的方法都很好,请自行看源码,里面都是中文注释,能符合大部分的需求,各种组合排列,我在它的基础上封装了一个符合自己需求的方法 第二步:再次封装 :如下 /** * 获取数组的所有子集 * * @param s 阅读详情

求一个集合的所有子集表示从一个集合当中,任取任意项或不取,所能得到的所有结果,比如有一个集合{a,b,c,d},那么{a,b}, {b, d}等都是它的子集,空集也是它的子集,一个具有n 个元素的集合,它的子集共有2^n个,因为对于每个元素都有两种可能:选与不选。如果用1来表示选择,0表示不选,那么四个元素的集合选择情况可以表示为:0000,0001,0010,0100,1000,1001……当写出所有的子集后,可以发现它们恰好对应着从0到15的二进制码表示,所以可以从二进制码入手来解这个问题。下面上代码:

public class Subset {

	public static void main(String[] args) {
		char[] a = {'a','b','c','d'};
		subSet(a);
	}
	
	private static void subSet(char[] a){
		int n = a.length;
		for(int i=0; i<(1<<n); i++){//循环2^n次
			String setStr = Integer.toBinaryString(i);//将int值转换成二进制值的字符串
			int unChoose = n-setStr.length();
			System.out.print("{");
			for(int j=0; j<setStr.length(); j++){
				if(setStr.charAt(j)=='1')//1表示被选中,0表示没有被选中
					System.out.print(a[unChoose+j]);
			}
			System.out.println("}");
		}
	}
}


运行后得到的结果如下:

{}
{d}
{c}
{cd}
{b}
{bd}
{bc}
{bcd}
{a}
{ad}
{ac}
{acd}
{ab}
{abd}
{abc}
{abcd}

Java算法学习:求取一个集合中的所有子集 求取一个集合中的所有子集 package 算法学习; import java.util.HashSet; import java.util.Set; /** * Page Description: * User: Yelihu * Date: 2019-03-02 * Time: 下午 3:02 * Function: */ public class 增量迭代 { p... 阅读详情

相关推荐

得到一个集合的全部子集,java实现

GetSubSet是得到给定大小的所有子集,若要得到所有子集,只需从i=1,2,...,n分别调用。

Java求子集的方法

问题 给你一个整数数组 nums ,数组中的元素互不相同(也可以相同) 。返回该数组所有可能的子集(幂集)。解集可以包含重复的子集。你可以按任意顺序返回解集。 方法 方法一:枚举 可以先new一个list,里面的元素还是list。我们每次将一个元素向list里面的每个list中添加后重新放入list中。直至循环结束 class Solution { public List<List<Integer>> subsets(int[] nums) { List&

西瓜的博客 1580

Java 通过位运算求一个集合的所有子集方法

下面小编就为大家带来一篇Java 通过位运算求一个集合的所有子集方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

java求集合的所有子集、所有子序列、全排列全组合问题

1.求集合的所有子集(又称全组合) 求一个集合的所有组合,例如集合{A,B,C}的所有子集为:{},{A,B,C},{A,B},{A,C},{B,C},{A},{B},{C}。 思路 对于任意集合A,元素个数为n(空集n=0),则所有子集的个数为2^n个 如集合A={a,b,c},其子集个数为8;对于任意一个元素,在每个子集中, 要么存在,要么不存在,对应关系是: a=1或a=0,b=...

qq_28140917的博客 4622

雪亮工程视频联网技术详解:视综平台主流接入方式与协议分析

随着雪亮工程建设的深入,视频资源的汇聚与共享成为核心需求。本文简要剖析了雪亮视综平台下的视频联网接入技术,重点讲解了主流接入方式的区别与选型,并深入探讨了平台内部及跨平台的视频资源共享机制(含级联与推送模式),旨在为安防开发人员和系统集成商提供清晰的架构思路与技术参考。

lsz152590的博客 716

QGIS插件实战:用百度地图AOI数据做个城市公园分析,从下载到出图全记录

本文详细介绍了如何利用QGIS的百度地图AOI插件进行城市公园分析,从插件安装、数据获取到空间分析与可视化全流程。通过实战案例演示了公园面积统计、服务范围缓冲区分析及专题地图制作,帮助用户高效完成城市绿地评估工作。

weixin_30790841的博客 556

Java求出一个给定集合的所有子集

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33831673的博客 1051

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3011

Java实现求一集合的所有子集

前言: 对任意集合A,它有2^n个子集(n为集合A中的元素的个数),为什么呢?我们可以这样想:在构造子集时,对于集合A中的每一个元素,有两种方案,即选与不选,对集合中每个元素的方案进行组合,就会有2的n次方中组合。 举例: 集合A={1,2,3}的子集有{}、{1}、{2}、{3}、{1,2}、{1,3}、{2,3}、{1,2,3}共222=8个即2的3次方。 算法思想: 采用递归方式,对于求含有n个元素的集合的子集,递归求解它的n-1个元素的所有子集存于结果集中,再赋复制一份结果集出来,为复制出来的结果集

weixin_45685353的博客 4609

uniapp [安卓苹果App端] - 在“安卓app/苹果app“平台端打包编译后,微信授权登录报错 login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)错误码code:-10

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,出现微信确认登录界面后点击登录报错,BundleID,应用ID,微信登录,app微信一键登录,微信登录绑定点确定就出错,AppSecrect,login:fail[:-1]未能完成操作。(PGWXAPI错误-1。),"errCode":-100,"code":-100,在uniappmanifest.json配置了AppSecrect还是报错无

🏆 前端领域优质创作者 3764

三维重建(十八)——colmap的使用(粗浅)

三维重建(十八)——colmap的使用(粗浅)

河海大学研究生在读的学习笔记 1374

java 位集合_Java 通过位运算求一个集合的所有子集的实现方法详解

下面小编就为大家带来一篇Java 通过位运算求一个集合的所有子集方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧Java没有自带的求一个集合的所有子集的方法,我们可以通过集合的子集规律来求。一个集合的所有子集等于2^该集合的长度。比如{c,b,a}的长度为3,这个集合的子集就有8个。这句话看起来很简单,但同时也隐含着高深的哲理。其实一个集合的所有集合,和2^该集合...

weixin_42367947的博客 143

知识图谱:综述

第一种理解:知识图谱本质上是语义网络。本体论是语义网络中最重要的一个要素。第二种理解:知识图谱也叫做多关系图,由多种类型的节点和多种类型的边组成。课程以第二种理解为主。

u013250861的博客 479

java实现求一个项目集合任意元子集的通用算法

在关联规则挖掘过程中,经常涉及到求一个频繁项目集的n元子集,在此设计了一个通过位操作映射子集的通用算法。 import java.util.BitSet; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class FindSubset { private BitS...

beifenggo 163

RFC 字符码转换深度解析:Unicode、非 Unicode 与 MDMP 系统的协奏

老版本 MDMP 系统不上传自定义映射时,Unicode 端会落回“预配置列表”。列表里可见西欧 1100、日文 8000、中文 8400 等经典编号。若需强制覆写映射,可在 SM59 ➡Unicode页签启用,或直接勾选作为兜底。字符编码问题常“潜伏”多年,一旦旧系统升级或新增语种便集中爆发。掌握 RFC code page 转换机理、灵活运用 SM59 选项、在早期对 LANG 字段和字段长度进行治理,是根治乱码与 short dump 的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 222

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

回溯法动态规划-06subsets(I II)现在有一个没有重复元素(有重复元素)的整数集合S,求S的所有子集java实现

题目描述(牛客需要排序输出) 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按非递增的顺序排列 给出的解集中不能出现重复的元素 例如: 如果S=[1,2,3], 给出的解集应为: [↵ [3],↵ [1],↵ [2],↵ [1,2,3],↵ [1,3],↵ [2,3],↵ [1,2],↵ []↵] 思路:用到回溯方法,具体思想可...

WukongGo的博客 1374

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java set子集_Java 求集合的所有子集

packagech01;importjava.util.HashSet;importjava.util.Iterator;importjava.util.LinkedList;importjava.util.List;importjava.util.Set;public classQuerySubSet {// 递归调用, 求出 Set的子集, 返回List列表public static List...

weixin_39754142的博客 430

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

78. subsets java_[LeetCode] 78. Subsets Java

题目:Given a set ofdistinctintegers,nums, return all possible subsets.Note:The solution set must not contain duplicate subsets.For example,Ifnums=[1,2,3], a solution is:[[3],[1],[2],[1,2,3],[1,3]...

weixin_35828992的博客 215

《leetCode-php》求不重复数组的子集

现在有一个没有重复元素的整数集合S,求S的所有子集 思路:通过二进制来确定有哪些子集 <?php function subsets($arr) { $num = count($arr); $end = pow(2, $num); $arrRet = array(); for ($i = 0; $i < $end; $i ++) { ...

less_cold的博客 271

Java求一个集合的所有子集

Java求一个集合的三种算法,二进制、动态规划、DFS+回溯

大兵的博客 1529

输出一个字符串数组所有非空子集

前几天导师让写一个数据挖掘的算法,用到了一个求一个字符串数组子集的程序,现在总结一下,说不定下次还可以用到。 java 代码如下: package com.xing.test; import java.util.Arrays; import java.util.LinkedList; /** * * @author LiuYinxing * */ public class Comb

Growth Diary 3024

Java 求集合的所有子集

递归方法调用,求解集合的所有子集。 package ch01; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Set; public class QuerySubSe...

anjiangang9974的博客 1279

求集合的所有子集(java实现)

代码: import java.io.File; import java.io.FileWriter; import java.io.IOException; /* *Created on 2015年1月28日 *Copyright 2015 Y. Cai Limited crop. All Rights Reserved * *7289***0@qq.com */ public

蔡先生的专栏 3894
上一篇: 怎样根据下载链接得到文件名(并非直接从链接中截取)
下一篇: 经典算法之动态规划(一):入门级动态规划
热血大婶
博客等级 码龄16年 58粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血大婶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值