传入一个数组,输出这个数组里面的所有排列
2012-11-12 13:20
190 查看
import java.util.ArrayList; /** * 传入一个数组,输出这个数组里面元素的所有可能组合 * EG:[1,2,3] 输出[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1] * @author Administrator */ public class ArrSort { static ArrSort as; ArrayList<String> save = new ArrayList<String>(); static String[] arr = {"1","2","3","4"}; /** * 判断list里面是否放入过当前数 * @param cur 当前数 * @param save list * @return */ public boolean is(String cur,ArrayList<String> save){ for (String string : save) { if(null == string)return false; if(string.equals(cur)){ return true; } } return false; } public void rec(int a){ for(int i=0;i<arr.length;i++){ if(as.is(arr[i], save))continue; save.add(arr[i]); if(a==1){ System.out.println(save); } rec(a -1); save.remove(arr.length-a); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub as = new ArrSort(); as.rec(arr.length); } }
面试的一道题
相关文章推荐
- 给一个整数数组,对数组中的每个整数中的所有数字按照升序排列(如101排序后为011)请写一个方法,输出排序后的数组中的最大数。 例如有一个数组: 101、132、375,排序后11、123、357,
- ACM273 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 题目:输入一个字符数组,输出所有的排列。
- 传入一个字符串参数 获取这个字符串内所有字符的 不同排列情况
- java输出一个数组的所有排列形式(全排序)
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 华为机考 给你一个N*M的矩阵,每个位置的值是0或1,求一个面积最大的子矩阵,这个矩阵必须是一个正方形,且里面只能由1构成,输出最大的正方形边长。其中n,m<=400;
- jq 输入一个整数,输出所有相加等于这个数的算式
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。
- 编写一个程序,自定义以为数组,删除一维数组中所有相同的数,使之只剩一个。数组中的数按由小到大顺序排列,并显示运行所用时间。
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- 一组数据中只有一个数字出现了一次。 其他所有数字都是成对出现的。请找出这个数字(数组指针的方法)
- 一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得
- 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在
- 给出一个函数来输出一个字符串的所有排列
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- C#不重复输出一个数组中所有元素的方法
- 微软等数据结构+算法面试100题(2)--给出一个函数来输出一个字符串的所有排列
- 给定一个数组,返回这个数组的所有子数组