leetcode 47. Permutations II 全排列 II(中等)
一、题目大意
标签: 搜索
https://leetcode.cn/problems/permutations-ii
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 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
二、解题思路
用回溯法解决全排列问题,给定的数组中元素有重复,因此用回溯法执行后的全排列结果中会有重复的,如下图所示。
解决方法,先构造一个 hashmap,key 是元素,value 是元素的个数,然后再用回溯法来解决
三、解题方法
3.1 Java 实现
复制代码
四、总结小记
2022/6/12 来记录结果的类型要用双端队列
版权声明: 本文为 InfoQ 作者【okokabcd】的原创文章。
原文链接:【http://xie.infoq.cn/article/08c136572c44ab06e4d8d8a4d】。文章转载请联系作者。
评论