华为 OD 训练营 · 题解精讲
LC47. 全排列 II
题目描述
给定一个可包含重复数字的序列 nums,按任意顺序返回所有不重复的全排列。
示例: 输入:nums = [1,1,2] 输出:[[1,1,2],[1,2,1],[2,1,1]]
注意:结果中不能包含重复的排列。
思路解析
1. 核心思路:使用回溯法生成所有排列,但需要去重。去重关键:在每一层递归中,同一数值只能使用一次,且相同数值的排列顺序固定。 2. 关键点:先对数组排序,使相同数字相邻;在回溯时,如果当前数字与前一个数字相同且前一个数字未被使用(即在同一层中跳过),则跳过当前数字,避免重复。