Tencent 50-subconjunto

Tencent 42and50- subconjunto leetcode78

Al igual que Tencent 42, revísalo de nuevo

Dado un conjunto de números de matriz entera sin elementos repetidos, devuelve todos los subconjuntos posibles (conjuntos de potencia) de la matriz.

Nota: El conjunto de soluciones no puede contener subconjuntos duplicados.

Ejemplo:

Entrada: nums = [1,2,3]
Salida:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2 ],
[]
]

Retroceso estándar

Según el método retrospectivo, la secuencia generada es
[]
[1]
[12]
[123]
[13]
[2]
[23]
[3]

  • Una mirada es sin duda el tema de la retrospectiva,
  • La operación de rastreo es el último elemento en la lista de eliminación.
  • La operación de retroceso es después de recurrir la función original.
class Solution:
    def helper(self,res,list_tmp,nums,index):
        res.append(list_tmp[:])
        for i in range(index,len(nums)):
            list_tmp.append(nums[i])
            self.helper(res,list_tmp,nums,i+1)
            list_tmp.pop()#回溯操作,在递归原函数之后 或者写成list_tmp=list_tmp[:-1]
            
    def subsets(self, nums: List[int]) -> List[List[int]]:
        ##一看无疑是回溯的题目,
        ##回溯操作是remove列表中最后一个元素
        ##回溯操作是在递归原函数之后     
        if len(nums)==0:return []
        res=[]
        list_tmp=[]
        self.helper(res,list_tmp,nums,0)
        return res
Publicado 93 artículos originales · elogiado 8 · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/zlb872551601/article/details/103653393
Recomendado
Clasificación