classSolution:defcombinationSum(self, candidates: List[int], target:int)-> List[List[int]]:ans =[]path =[]defdfs(i:int, left:int)->None:if left ==0:# 找到一个合法组合ans.append(path.copy())returnif i ==len(candidates)or left <0:return# 不选dfs(i +1, left)# 选path.append(candidates[i])dfs(i, left - candidates[i])path.pop()# 恢复现场dfs(0, target)return ans
二、22. 括号生成
代码
classSolution:defgenerateParenthesis(self, n:int)-> List[str]:m = n *2# 括号长度ans =[]path =['']* m # 所有括号长度都是一样的 m# i = 目前填了多少个括号# open = 左括号个数,i-open = 右括号个数defdfs(i:int,open:int)->None:if i == m:# 括号构造完毕ans.append(''.join(path))# 加入答案returnifopen< n:# 可以填左括号path[i]='('# 直接覆盖dfs(i +1,open+1)# 多了一个左括号if i -open<open:# 可以填右括号path[i]=')'# 直接覆盖dfs(i +1,open)dfs(0,0)return ans
三、79. 单词搜索(中等)
代码
classSolution:defexist(self, board: List[List[str]], word:str)->bool:m, n =len(board),len(board[0])defdfs(i:int, j:int, k:int)->bool:if board[i][j]!= word[k]:# 匹配失败returnFalseif k ==len(word)-1:# 匹配成功!returnTrueboard[i][j]=''# 标记访问过for x, y in(i, j -1),(i, j +1),(i -1, j),(i +1, j):# 相邻格子if0<= x < m and0<= y < n and dfs(x, y, k +1):returnTrue# 搜到了!board[i][j]= word[k]# 恢复现场returnFalse# 没搜到returnany(dfs(i, j,0)for i inrange(m)for j inrange(n))
使用 Spring Boot 快速构建企业微信 JS-SDK 权限签名后端服务
本篇文章将介绍如何使用 Spring Boot 快速构建一个用于支持企业微信 JS-SDK 权限校验的后端接口,并提供一个简单的 HTML 页面进行功能测试。适用于需要在企业微信网页端使用扫一扫、定位、录音等接口的…
中国网站:FTDIChip- 首页 UMFT4222EV-D UMFT4222EV-D - FTDI 可以下载Datasheet。 UMFT4222EVUSB2.0 to QuadSPI/I2C Bridge Development Module Future Technology Devices International Ltd. The UMFT4222EV is a development module which uses FTDI’s FT4222H…