zoukankan      html  css  js  c++  java
  • LeetCode——Permutations

    Given a collection of numbers, return all possible permutations.

    For example,
    [1,2,3] have the following permutations:
    [1,2,3][1,3,2][2,1,3][2,3,1][3,1,2], and [3,2,1].

    原题链接:https://oj.leetcode.com/problems/permutations/

    题目:给定一组数。返回其全排列。

    思路:记录每个数是否被使用过,将未使用过的数增加到current中,current长度已满。则增加到result中。

    	public List<List<Integer>> permute(int[] num) {
    		if (num == null)
    			return null;
    		List<List<Integer>> result = new ArrayList<List<Integer>>();
    		if (num.length == 0)
    			return result;
    		permute(num, new boolean[num.length], new ArrayList<Integer>(), result);
    		return result;
    	}
    
    	public void permute(int[] num, boolean[] isused,
    			ArrayList<Integer> current, List<List<Integer>> result) {
    		if (current.size() == num.length) {
    			result.add(new ArrayList<Integer>(current));
    			return;
    		}
    		for (int i = 0; i < num.length; i++) {
    			if (!isused[i]) {
    				isused[i] = true;
    				current.add(num[i]);
    				permute(num, isused, current, result);
    				current.remove(current.size() - 1);
    				isused[i] = false;
    			}
    		}
    	}



  • 相关阅读:
    JSP 服务器响应
    JSP 客户端请求
    杂烩笔记
    ExtJS panel
    DB2存储过程语法规则
    CentOS查看软件源提供的软件版本命令
    Linux查看程序端口占用情况【转】
    359. Logger Rate Limiter
    358. Rearrange String k Distance Apart
    357. Count Numbers with Unique Digits
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7040706.html
Copyright © 2011-2022 走看看