from typing import List
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
nums.sort()
ans = []
def backtrack(index, nums):
if index == len(nums):
ans.append(nums.copy())
return
for i in range(index, len(nums)):
if i > index and nums[i] == nums[i-1]: # checking for duplicate values
continue
nums[index], nums[i] = nums[i], nums[index]
backtrack(index + 1, nums)
nums[index], nums[i] = nums[i], nums[index]
backtrack(0, nums)
return ans
它对于给定的测试用例运行良好,但不适用于所有测试用例。我知道出了什么问题。但是什么,特别是代码行
if i > index and nums[i] == nums[i-1]: # checking for duplicate values
continue
为什么这些行不能避免重复排列,它是在组合中工作,而不是在排列中。
我已经厌倦了 chatGPT 和 AI。我们将不胜感激您的帮助。
我已经不再使用 Google 和 AI 工具了。
代码将 nums[index] 与 nums[i] 交换,因此检查重复值应该是
if i > index and nums[i] == nums[index]: # checking for duplicate values
continue