成都私人网站制作公司,wordpress侧栏跟随,免费开放的api网站应用,找工地项目承包网站文章目录 题目描述题解思路题解代码 题目描述 题解思路
初始化一个变量start表示当前从哪里开始遍历nums
搜索过程的数字组合加入结果集
从start开始遍历nums
如果当前元素和前一个元素相等#xff0c;前一个元素没被使用#xff0c;则触发剪枝去重操作#xff0c;跳过当… 文章目录 题目描述题解思路题解代码 题目描述 题解思路
初始化一个变量start表示当前从哪里开始遍历nums
搜索过程的数字组合加入结果集
从start开始遍历nums
如果当前元素和前一个元素相等前一个元素没被使用则触发剪枝去重操作跳过当次遍历
否则将start赋值为当前元素的下一个递归搜索然后跳过重复的数字进行剪枝
直到搜索完毕返回结果集
题解代码
class Solution:def subsetsWithDup(self, nums: List[int]) - List[List[int]]:nums.sort()start 0res []tmp []n len(nums)def dfs():nonlocal startres.append([num for num in tmp])i startwhile i n:start i 1tmp.append(nums[i])dfs()tmp.pop()while i n - 1 and nums[i] nums[i1]:i1i1dfs()return res