Java實現-全排列
給定一個數字列表,返回其所有可能的排列。
注意事項
你可以假設沒有重複數字。
樣例
給出一個列表[1,2,3]
,其全排列為:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
class Solution {
/**
* @param nums: A list of integers.
* @return: A list of permutations.
*/
public List<List<Integer>> permute(int[] nums) {
// write your code here
Arrays.sort(nums);
List<List<Integer>> result=new ArrayList<List<Integer>>();
List<Integer> tempList=new ArrayList<Integer>();
backTracking(nums, result, tempList);
return result;
}
private static void backTracking(int[]nums, List<List<Integer>> result, List<Integer> tempList){
if(tempList.size()==nums.length){
result.add(new ArrayList<Integer>(tempList));
}else{
for(int i=0;i<nums.length;i++){
if(tempList.contains(nums[i])){
continue;
}else{
tempList.add(nums[i]);
backTracking(nums, result, tempList);
tempList.remove(tempList.size()-1);
}
}
}
}
}
相關文章
- 字串全排列 java實現字串Java
- 從基礎講全排列(Java實現)Java
- Java實現全排列、組合演算法Java演算法
- 實現自然數N的全排列
- 【演算法】遞迴實現全排列演算法遞迴
- 全排列演算法的JS實現演算法JS
- leetcode:全排列(java回溯)LeetCodeJava
- 全排列的實現之遞迴版與迭代版遞迴
- 字串全排列字串
- 字串的全排列字串
- 全排列演算法演算法
- 演算法——全排列演算法
- 字母排列(python實現)Python
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- 【Algorithm】全排列演算法Go演算法
- JavaScript陣列元素全排列JavaScript陣列
- CSS3實現文字垂直排列CSSS3
- Leetcode——46. 全排列LeetCode
- 【LeetCode】46. 全排列LeetCode
- js陣列全排列問題JS陣列
- 有重複元素的全排列
- LeetCode系列46—全排列LeetCode
- LeetCode-046-全排列LeetCode
- 全排列及相關擴充套件演算法(二)——求字典序下一組排列及全排列演算法套件演算法
- 實現將10個整數升序排列
- LeetCode-047-全排列 IILeetCode
- 遞迴解決全排列問題遞迴
- [演算法]全排列類問題演算法
- 全排列價值(數學問題)
- 遞迴演算法實踐---實現排列組合遞迴演算法
- 前端電商 sku 的全排列演算法前端演算法
- LeetCode46 回溯演算法求全排列,這次是真全排列LeetCode演算法
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- java實現手機簡訊驗證全過程Java
- 回溯法解決全排列問題總結
- Python語言的全排列怎麼提速?Python
- LeetCode 45跳躍遊戲&46全排列LeetCode遊戲
- 全網最全的Java SpringBoot點贊功能實現JavaSpring Boot