本文主要是介绍47.给定一个可能包含重复数字的集合,实现一个算法返回所有可能的唯一排列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
47. Permutations II
题目
给定一个可能包含重复数字的集合,返回所有可能的唯一排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
题目大意
给定一个可包含重复数字的序列,返回所有不重复的全排列。
解题思路
- 这一题是第 46 题的加强版,第 46 题中求数组的排列,数组中元素不重复,但是这一题中,数组元素会重复,所以需要最终排列出来的结果需要去重。
- 去重的方法是经典逻辑,将数组排序以后,判断重复元素再做逻辑判断。
- 其他思路和第 46 题完全一致,DFS 深搜即可。
代码实现
package leetcodeimport "sort"/*
实现思路:
该问题要求生成一个包含重复元素数组的所有唯一排列。通过递归和回溯的方法构建排列,同
这篇关于47.给定一个可能包含重复数字的集合,实现一个算法返回所有可能的唯一排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!