• 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;
    			}
    		}
    	}



  • 相关阅读:
    爬虫杂七杂八
    pycharm使用技巧
    python杂七杂八
    mysql杂七杂八
    mysql常见函数总结:
    CF1030F Putting Boxes Together
    AT2688 [ARC080C] Young Maids
    P5280 [ZJOI2019]线段树
    雨的味道
    P2572 [SCOI2010]序列操作
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7040706.html
Copyright © 2020-2023  润新知