46.全排列

給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。
示例:
輸入: [1,2,3]
輸出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> res = new ArrayList<List<Integer>>(); 
        tempPermute(nums, 0, res);
        return res;
    }
    
    public void tempPermute(int[] nums, int start, List<List<Integer>> res) {       
        if(nums.length - start < 2) {   //遞歸結(jié)束
            List<Integer> tmp = new ArrayList<Integer>();
            for(int i : nums) {
                tmp.add(i);
            }
            res.add(tmp);
            return;
        }
        // 把后面的數(shù)組元素交換到start位置,并對(duì)start+1剩下的元素進(jìn)行全排列    
        for(int i = start; i < nums.length; i++) {
            swap(nums, start, i);
            tempPermute(nums, start + 1, res);
            swap(nums, start, i); // 部分全排完成再交換回去!!!
        }
    }
    
     private static void swap(int[] nums, int i1, int i2) {
        int temp = nums[i1];
        nums[i1] = nums[i2];
        nums[i2] = temp;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目描述 全排列 給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 示例 輸入: [1,2,3]輸出:[[1,...
    一只可愛的檸檬樹閱讀 256評(píng)論 0 0
  • 46. 全排列給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。示例:輸入: [1,2,3]輸出:[[1,2,3...
    杏仁小核桃閱讀 3,179評(píng)論 0 0
  • 題意: 給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。示例:輸入: [1,2,3]輸出:[[1,2,3],[...
    萬(wàn)物皆可膜閱讀 171評(píng)論 0 0
  • 題目給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 示例:****輸入: [1,2,3]輸出:[[1,2,3...
    HITZGD閱讀 322評(píng)論 0 0
  • 題目描述: 給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3]輸出:[[1,2,...
    夜空中最亮的星_6c64閱讀 266評(píng)論 0 0

友情鏈接更多精彩內(nèi)容