摘要:題目給定一個(gè)可包含重復(fù)數(shù)字的序列,按任意順序返回所有不重復(fù)的全排列。示例輸入輸出示例輸入輸出提示答案回溯法使用數(shù)組判斷是否訪問過,排序后跳過與前一個(gè)相同的
題目:
給定一個(gè)可包含重復(fù)數(shù)字的序列 nums ,按任意順序 返回所有不重復(fù)的全排列。
示例 1:
輸入:nums = [1,1,2]
輸出:
[[1,1,2],
[1,2,1],
[2,1,1]]
示例 2:
輸入:nums = [1,2,3]
輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
提示:
1 <= nums.length <= 8
-10 <= nums[i] <= 10
答案:
class Solution { List<List<Integer>> lists; public List<List<Integer>> permuteUnique(int[] nums) { //回溯法,使用數(shù)組判斷是否訪問過,排序后跳過與前一個(gè)相同的 boolean[] visited = new boolean[9]; lists = new ArrayList<>(); List<Integer> list = new ArrayList<>(); Arrays.sort(nums); backTrace(list, nums, visited); return lists; } public void backTrace(List<Integer> list, int[] nums, boolean[] visited){ if(list.size() == nums.length) lists.add(new ArrayList<>(list)); for(int i = 0; i < nums.length; i++){ if(i > 0 && nums[i] == nums[i - 1] && !visited[i - 1]) continue; if(visited[i]) continue; visited[i] = true; list.add(nums[i]); backTrace(list, nums, visited); list.remove(list.size() - 1); visited[i] = false; } }}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/123183.html
摘要:示例輸入輸出解答這一題可以利用求下一個(gè)排列算法來求解,對(duì)原數(shù)組排序,然后加入一個(gè)結(jié)果,接著不斷求下一個(gè)排列,直到?jīng)]有下一個(gè)排列為止。而下一個(gè)排列的求解可以參考下一個(gè)排列代碼 題目地址:https://leetcode-cn.com/probl...題目描述:給定一個(gè)可包含重復(fù)數(shù)字的序列,返回所有不重復(fù)的全排列。 示例: 輸入: [1,1,2]輸出:[ [1,1,2], [1,2,1...
摘要:題目詳情題目要求輸入一個(gè)可能會(huì)有重復(fù)數(shù)字的數(shù)組,要求我們輸出可能組成的全排列無重復(fù)排列??梢杂脕韺?shí)現(xiàn),但這種實(shí)現(xiàn)方式復(fù)雜度高。另外一種實(shí)現(xiàn)思路是,新聲明一個(gè)數(shù)組來存儲(chǔ)中元素的使用狀況。以這個(gè)數(shù)組為例。 題目詳情 Given a collection of numbers that might contain duplicates, return all possible unique ...
摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說說你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...
摘要:題目地址題目描述給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 題目地址:https://leetcode-cn.com/probl...題目描述:給定一個(gè)沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3]輸出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解答:利用遞歸,我們可...
摘要:題目地址題目描述給出集合,其所有元素共有種排列。說明給定的范圍是。第二種是回溯法求全排列,設(shè)置一個(gè)全局變量為當(dāng)前求出的排列數(shù),求出第個(gè)全排列,也就是時(shí),停止所有遞歸否則會(huì)超時(shí)。 題目地址:https://leetcode-cn.com/probl...題目描述:給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列。 按大小順序列出所有排列情況,并一一標(biāo)記,當(dāng) n = 3 時(shí),...
閱讀 4004·2021-11-16 11:44
閱讀 3178·2021-11-12 10:36
閱讀 3435·2021-10-08 10:04
閱讀 1328·2021-09-03 10:29
閱讀 462·2019-08-30 13:50
閱讀 2712·2019-08-29 17:14
閱讀 1797·2019-08-29 15:32
閱讀 1145·2019-08-29 11:27