当前位置: 首页 > news >正文

怎么样创建网站友情链接举例

怎么样创建网站,友情链接举例,申请商标注册,和网站合作有哪些活动可以做目录 前置知识进入正题小试牛刀实战演练总结 前置知识 【算法】回溯算法专题① ——子集型回溯 python 进入正题 组合https://leetcode.cn/problems/combinations/submissions/596357179/ 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以…

目录

  • 前置知识
  • 进入正题
  • 小试牛刀
  • 实战演练
  • 总结


前置知识


【算法】回溯算法专题① ——子集型回溯 python



进入正题


组合https://leetcode.cn/problems/combinations/submissions/596357179/


给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

示例 1:

输入:n = 4, k = 2
输出:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]

示例 2:

输入:n = 1, k = 1
输出:[[1]]

提示:
1 <= n <= 20
1 <= k <= n

思路:

回溯思路(选或不选 / 枚举选哪个)
剪枝(选不满k个就停止递归)


code1:

class Solution:def combine(self, n: int, k: int) -> List[List[int]]:ans = []path = []def dfs(i):# 剪枝if n - i + 1 + len(path) < k:  returnif len(path) == k:ans.append(path.copy())return# 不选dfs(i + 1)# 选path.append(i)dfs(i + 1)path.pop()dfs(1)return ans

code2:

class Solution:def combine(self, n: int, k: int) -> List[List[int]]:ans = []path = []def dfs(i):# 剪枝if n - i + 1 + len(path) < k:returnif len(path) == k:ans.append(path.copy())return# 枚举选哪个    for j in range(i, n + 1):path.append(j)dfs(j + 1)path.pop()dfs(1)return ans


小试牛刀


组合总和Ⅲ https://leetcode.cn/problems/combination-sum-iii/description/

找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
1.只使用数字1到9
2.每个数字 最多使用一次
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

示例 1:

输入: k = 3, n = 7
输出: [[1,2,4]]
解释:
1 + 2 + 4 = 7
没有其他符合的组合了。

示例 2:

输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]
解释:
1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9
没有其他符合的组合了。

示例 3:

输入: k = 4, n = 1
输出: []
解释: 不存在有效的组合。
在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。

提示:
2 <= k <= 9
1 <= n <= 60

思路:

与上题一样的思路
回溯 + 剪枝


题解1:

class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:ans = []path = []def dfs(i):# 剪枝if len(path) + 10 - i < k:returnif sum(path) > n:returnif len(path) == k and sum(path) == n:ans.append(path.copy())return# 选path.append(i)dfs(i + 1)path.pop()# 不选dfs(i + 1)dfs(1)return ans

题解2:

class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:ans = []path = []def dfs(i):# 剪枝if len(path) + 10 - i < k:returnif sum(path) > n:returnif len(path) == k and sum(path) == n:ans.append(path.copy())return# 枚举选哪个for j in range(i, 10):path.append(j)dfs(j + 1)path.pop()dfs(1)return ans

当然,我们可以在判断和是否为n时进行优化:
在dfs中传入target参数,每选一个数字 j 就把target减去 j

code:

class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:ans = []path = []def dfs(i, t):if len(path) + 10 - i < k:returnif t < 0:returnif len(path) == k and t == 0:ans.append(path.copy())returnfor j in range(i, 10):path.append(j)dfs(j + 1, t - j)path.pop()dfs(1, n)return ans



实战演练


括号生成 https://leetcode.cn/problems/generate-parentheses/

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3
输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]

示例 2:

输入:n = 1
输出:[“()”]

提示:
1 <= n <= 8

思路:

理解为填左括号, 不选理解为填右括号


题解:

class Solution:def generateParenthesis(self, n: int) -> List[str]:ans = []path = []def dfs(i, left, right):if i == 2 * n:ans.append("".join(path))return# 左括号数量不能超过nif left < n:path.append("(")dfs(i + 1, left + 1, right)path.pop()# 右括号数量不能超过左括号数量if right < left:path.append(")")dfs(i + 1, left, right + 1)path.pop()dfs(0, 0, 0)return ans


总结


剪枝是一种优化技术,用于提前终止那些不可能找到解的搜索路径,从而提高算法效率。
而组合型回溯问题常常与剪枝相结合


END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

http://www.wangmingla.cn/news/92851.html

相关文章:

  • 免费营销网站制作四川seo推广方案
  • 上海的建设网站g3云推广
  • 怎么建设网站怎么样如何写软文赚钱
  • 电子商务网站建设与综合实践承德网络推广
  • 做网站建设公司赚钱吗定制企业网站建设制作
  • wordpress 网站统计插件下载想要导航页面推广app
  • 企业网站多大空间无锡百度信息流
  • 网站logo代码站长工具seo综合查询分析
  • 宁津网站建设宁波江北区网站推广联系方式
  • 用微魔方做的网站一定要加千锋教育学费多少
  • 怎么进behance设计网站泰州网站整站优化
  • 一定要知道的网站二级域名注册平台
  • 网站建设实训课亚马逊关键词排名查询工具
  • 展示型网站建设价格南京百度提升优化
  • 网站 宽屏窄屏自适应下载安装百度一下
  • 怎么做网站才能不让警察定位到自己宁波seo优化项目
  • 建网站盈利的几种方式谷歌搜索引擎香港入口
  • 做网站下载那个数据库好网络推广公司是干什么
  • 北京网站开发互联网推广方式有哪些
  • 外贸批发网站建设推广普通话手抄报内容大全
  • 北京做网站哪家专业天津网站推广
  • 在平台企业网站推广怎么做广州网络公司
  • 网站标题seoseo工作职责
  • 模拟网站建设网络广告
  • web开发是网站开发吗seo网站关键词排名软件
  • 数据库网站建设小型项目外包网站
  • 鞍山网上制作网站营业推广
  • wordpress和网站区别磁力狗bt
  • 网站后台 源码东莞关键词优化平台
  • 便宜做网站怎么样代写文案平台