成都网站建设设计

将想法与焦点和您一起共享

组合代码java 组合代码实现

求java实现String list[] = { "1", "2", "3" }; 的排列组合代码

对于这个问题,我首先需要纠正一下楼主的措辞,这是个组合问题,跟排列无关,用排列组合亦不恰当。下面说下我的想法

创新互联专注于桓台网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供桓台营销型网站建设,桓台网站制作、桓台网页设计、桓台网站官网定制、微信小程序定制开发服务,打造桓台网络公司原创品牌,更为您提供桓台网站排名全网营销落地服务。

元素不能重复,首先应该去掉相同的元素,最好的办法是用set来实现。参考api

Arrays.asList

set.addAll

其实呢,这个是一个递归的过程,考虑下面情况

对于数组

{“1”},它的组合数就是{“1”}。

如果再加上一个元素“2“到上面的数组中,那么,如果这个”2“不用,实质上跟{"1"}的情况是一样的,这与不能重复相矛盾,所以”2“一定要用,就是在"1"中再加上”2“;于是我们得到

对于数组{”1“,”2“}它的组合数是{”1“}

再加入一个{”2“}。也许你也考虑到另外一种情况,即”2“也是它的一个组合数,我们考虑丢了,为什么呢,因为在{”1“}中实质上还有一个称为空的集合。这样的话,重新整理一下:

1.对于list

=

{"1"},它的组合包括

{"1"},以及

empty.

2.对于list={"1","2"},它的组合包括{”1“,”2“}(在{”1“}中加了”2“),{”2“}(在empty中加入”2“),也许你还会讲还应该包括{”1“},但是这个{”1“}我们已经在第1步就已经算出来了,不用再考虑了。

按照这样的规则进行下去,你会发现这样就把所有的组合数遍历出来了。要具体的代码就等会儿,我现在有事。

求解释一段代码,关于Java中排列组合的问题

ArrayListCharacter

newblist=new

ArrayListCharacter(blist);

是用blist的值创建一个新的ArrayList

如果

newblist

=

blist;这样,那两个ArrayList使用的是同一个引用,操作一个会影响另一个。

------------------------------------------------------------------------------------------------------------------------

这个代码的递归思想是这样的。

alist是数据,blist是结果

循环alist,创建出一个newalist备份,将alist中的一个元素添加到newblist.add(alist.get(i));中,

并在newalist中删除。

将这两个新的对象递归下去。

[1,2,3]

[]

[2,3]

[1]

[3]

[1,2]

--------------------

递归使用的是新创建的list

所以方法结束后,对alist,blist没有影响

[2,3]

[1]

[2]

[1,3]

输入任意字符序列,输出所有两位数的排列组合JAVA代码?

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// 创建Scanner对象,用于获取用户输入

Scanner scanner = new Scanner(System.in);

System.out.print("请输入任意字符序列:");

// 获取用户输入的字符序列

String str = scanner.nextLine();

// 循环遍历字符序列中的每个字符

for (int i = 0; i str.length(); i++) {

// 获取字符序列中的第i个字符

char c1 = str.charAt(i);

// 循环遍历字符序列中的每个字符

for (int j = 0; j str.length(); j++) {

// 获取字符序列中的第j个字符

char c2 = str.charAt(j);

// 如果第i个字符不等于第j个字符,则输出它们的排列

if (i != j) {

System.out.println(c1 + "" + c2);

}

}

}

}

}


本文标题:组合代码java 组合代码实现
网站地址:http://chengdu.cdxwcx.cn/article/dogeodh.html