java 获取数组元素的全排列

private static ArrayList<ArrayList<Integer>> permute(int[] num) {
    ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
    result.add(new ArrayList<Integer>());

    for (int i = 0; i < num.length; i++) {
        ArrayList<ArrayList<Integer>> current = new ArrayList<ArrayList<Integer>>();

        for (ArrayList<Integer> l : result) {
            for (int j = 0; j < l.size()+1; j++) {
                l.add(j, num[i]);
                ArrayList<Integer> temp = new ArrayList<Integer>(l);
                current.add(temp);
                l.remove(j);
	    }
        }
	result = new ArrayList<ArrayList<Integer>>(current);
    }

    return result;
}
时间: 2024-11-09 18:09:51

java 获取数组元素的全排列的相关文章

Knockout获取数组元素索引的2种方法,在MVC中实现

在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespace UseIndex.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } } 在HomeController中,先模拟一个Student的集合,在投影出Name属性的集合,最后以Json返回给前台视图. using Syste

随机获取数组元素 和 数组元素随机排序

<script type="text/javascript"> //随机取得数组中的一个元素 function Rand(){ var arr=[11,22,33,44]; var a=Math.floor(Math.random()*arr.length);//Math.floor(Math.random()); //Math.floor()方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数. //alert(Math.random()*arr.

Java实现数组元素反转

package com.fgy.demo; /** * 数组元素反转 */ public class demo05 { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50}; System.out.print("数组反转前:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " ")

java 获取数组(二维数组)长度实例程序

我们可能知道 js有个length函数,java也有啊length函数 例 如果数组是data[],则data.length 代码如下 复制代码 byte[] phone =new byte[81]; //建立一个byte类型的数组,长度为81 phone[i]!=0中phone[i]! //数组的第i的位置不等0 如: 代码如下 复制代码 byte[] phone =new byte[81]; //建立一个byte类型的数组,长度为81 phone[1]!=0中phone[1]! //数组第二

灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?

限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个主题.说实话,我当时脑海中浮现出了这样一副惊心动魄的画面: 面试官老马坐在我的对面,地中海式的发型令我敬佩有加.尽管略显疲惫,但他仍然自信地向我抛出了上面这个问题.稍稍迟疑了一下,我回答说:"数组用 length,字符串用 length 跟上小括号".老马不愧是面试中的高手,一瞬间就从我的

0129 JavaScript 数组:概念、创建数组、获取数组中的元素

1.1 数组的概念 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式. 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素.数组是一种将一组数据存储在单个变量名下的优雅方式. 1.2 创建数组 JS 中创建数组有两种方式: 利用 new 创建数组 var 数组名 = new Array() : var arr = new Array(); // 创建一个新的空数组 注意 Array () ,A 要大写 利用数组字面量创建数组 //1. 使用数组字面量方

jquery取对象数组元素的错误方式

代码如下: 1 <div id="div1"> 2 <span>a</span> 3 <span>b</span> 4 <span>c</span> 5 </div> 1.错误方式:不能用[]方式取jquery对象数组,如下: 1 $(function() { 2 var div_span = $("#div1 span"); 3 for( var i = 0; i &l

js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素

 壹 ? 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来看一段代码: let arr = [1, 2]; arr.forEach((item, index) => { arr.splice(index, 1); console.log(1); //输出几次? }); console.log(arr) //? 请问,这段代码执行完毕后arr输出为多少?循环

第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)

获取数组的最值(最大值和最小值) 思路: 1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该 值不确定,需要一个变量进行临储. 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于了 变量中的值,就用该变量记录较大值. 3.当所有的元素都比较完成,那么该变量中存储的就是数组中最大值 例子://最大值 int arr[] = {1,2,3,4,5,}; int max = arr[0]; for(int a=0;a<arr.length;a++){ {if(arr[a])>a