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

在线花钱做网站iis 网站启动不了

在线花钱做网站,iis 网站启动不了,视频网站 如何做seo,成都平台网站建设力扣22.括号生成【medium】 力扣39.组合总和【medium】 力扣40.组数总和Ⅱ【medium】 一、力扣22.括号生成【medium】 题目链接:力扣22.括号生成 视频链接:灵茶山艾府 1、思路 可以理解成2n个位置选n个位置放置左括号 从输入的视角:枚举当前…

力扣22.括号生成【medium】
力扣39.组合总和【medium】
力扣40.组数总和Ⅱ【medium】

一、力扣22.括号生成【medium】

题目链接:力扣22.括号生成
在这里插入图片描述

视频链接:灵茶山艾府

1、思路

  • 可以理解成2n个位置选n个位置放置左括号

  • 从输入的视角:枚举当前位置填左括号还是右括号?本质上是「选或不选」,把填左括号视作「选」,填右括号视作「不选」。(也可以反过来)。

  • 时间复杂度: O ( n ∗ C m n ) O(n*C_m^n) O(nCmn)

    • 分析回溯问题的时间复杂度,有一个通用公式:路径长度×搜索树的叶子数。但由于左右括号的约束,实际上没有这么多叶子,根据 Catalan 数,只有 C m n n + 1 \frac{C_m^n}{n+1} n+1Cmn 个叶子节点,所以实际的时间复杂度为 O(C_m^n)。此外,根据阶乘的 Stirling 公式,时间复杂度也可以表示为 O ( 4 n n ) O( \frac{4^n}{\sqrt{n}}) O(n 4n)

2、代码

class Solution:def generateParenthesis(self, n: int) -> List[str]:m = n * 2ans =[]path = [''] * mdef dfs(i, open):if i == m:ans.append(''.join(path))returnif open < n:path[i] = '('dfs(i+1, open + 1)if i - open < open :path[i] = ')'dfs(i+1, open)dfs(0,0)return ans

二、力扣39.组合总和【medium】

题目链接:力扣39.组合总和
在这里插入图片描述
视频链接:代码随想录
题解链接:灵茶山艾府

1、思路

  • 和组数总和Ⅲ有点类似,那边数组的长度是固定的并且不可以重复,这便是不固定可以重复使用,这边也多设置一个参数left表示还差多少完成target的目标。
  • 终止条件:当left == 0就可以存储答案
  • 单层逻辑:选或者不选,**注意这边选的话递归还是本次的i,**由于是可以重复使用的,这和之前的回溯递归不一样的地方
  • 时间复杂度: O ( n ∗ 2 n ) O(n*2^n) O(n2n) ,注意这只是复杂度的上界,因为剪枝的存在,真实的时间复杂度远小于此

2、代码

class Solution:def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:ans = []path = []def dfs(i:int, left:int):if left == 0:ans.append(path.copy())returnif i == len(candidates) or left < 0:return# 不选idfs(i+1, left)path.append(candidates[i])# 这边允许元素重复使用,所以递归的话是i而不是i+1dfs(i, left - candidates[i]) # 这边i不是数本身,而是数组的索引path.pop()dfs(0, target)return ans

三、力扣40.组数总和Ⅱ【medium】

题目链接:力扣40.组数总和Ⅱ
在这里插入图片描述

视频链接:代码随想录
题解链接:灵茶山艾府

1、思路

  • 本题和39题的区别是,我们的候选仓库 candidates 中的元素是可以重复的,里面的元素却不可以重复使用,
  • 所以实际上这边不选某个元素的时候要特殊处理,比上一题来的复杂
  • 我们可以先排序一下,比较好处理重复元素,并且可以做到一个优化剪枝
  • 时间复杂度: O ( n ∗ 2 n ) O(n*2^n) O(n2n) ,注意这只是复杂度的上界,因为剪枝的存在,真实的时间复杂度远小于此

2、代码

"""
注意:本题和39题的区别是,我们的候选仓库 candidates 中的元素是可以重复的,里面的元素却不可以重复使用,所以实际上这边不选某个元素的时候要特殊处理,比上一题来的复杂
"""
class Solution:def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:candidates.sort() # 先从小到大排个序n = len(candidates)ans = []path = []def dfs(i:int, left:int):if left == 0:ans.append(path.copy())returnif i == len(candidates):returnx = candidates[i]if left < x:returnpath.append(x)dfs(i+1, left - x)path.pop()# 不选 x,那么后面所有等于 x 的数都不选# 如果不跳过这些数,会导致「选 x 不选 x'」和「不选 x 选 x'」这两种情况都会加到 ans 中,这就重复了i += 1while i < n and candidates[i] == x:i += 1dfs(i,left)dfs(0,target)return ans

3、代码问题

  • 这边我一开始只注意到不可以重复使用,直接在上一题的基础上快速修改了,就报错了……
  • 这道题的元素仓库本来就有重复的元素,所以我需要处理这个细节,否则我的ans中就有很多重复答案。

http://www.dtcms.com/wzjs/787591.html

相关文章:

  • 微信做购物网站怎么抽佣做房产信息互联网网站需要什么资质
  • jsp环保主题网站代做免费咨询会计
  • 怎么做网站源代码办宽带需要多少钱一月
  • 空壳网站wordpress背景高斯模糊
  • 监控做直播网站网站建设需要会
  • 网站meta 优化建议电商网站开发主要设计内容
  • 做教育网站有什么好处asp网站下载
  • 自助网站建设系统中企动力手机邮政登录
  • 从事网站开发网站建设项目总结
  • 网站空间送域名价格表网站个人备案和企业备案
  • 行业网站大全有没有专门做商铺招商的网站
  • 山西常见网站建设推荐优化验证码平台网站开发
  • 大作设计网站官网下载湛江低价网站建设
  • 二手车为什么做网站中国企业100强
  • 国际机票网站建设seo咨询推广
  • 网站关键词怎么写wordpress 社交网站
  • 长沙县营销型网站建设选哪家网站建设免费建站免费源代码
  • 网站seo基本流程电子商务网站建设的参考文献
  • 法学院网站建设建议微网站的功能
  • seo网站怎么优化word免费素材大全
  • 湖州服装网站建设站长之家网页模板下载
  • 出售手表的网站有哪些公司做网站的法律依据
  • 百度云网站建设教程视频wordpress 功能 rss
  • 网站源码下载搭建我国宣布进入紧急状态了吗
  • 在线视频网站开发方案php企业文化经典句子
  • 网站死链接检查如何做一个网页卖东西
  • 中国建设银行东莞市网站wordpress木子
  • 建网站需要买些什么郑州网站优化_郑州网站推广_河南网站建设公司_seo外包顾问服务
  • icp对网站内容六安网站制作金狮
  • 企业网站建设效益分析wordpress网站反应慢