字节跳动一面算法题
求数组中所有元素的组合(比如[1,2,2],组合有[[], [1],[2], [1,2],[2,2],[1,2,2]])
很明显使用回溯算法可以解决
nums = [1,2,2]
nums.sort()
res = [[]]
def backtrack(nums, temp):
# res.append(temp)
for i in range(len(nums)):
if i>0 and nums[i-1]==nums[i]:
continue
res.append(temp + [nums[i]])
backtrack(nums[i+1:], temp + [nums[i]])
backtrack(nums, [])
print(res)