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

如何建设一个苹果网站商家怎么入驻百度

如何建设一个苹果网站,商家怎么入驻百度,郑州app开发网站建设,网站建设官方商城思路一&#xff1a;回溯&#xff1a;按照选和不选的判断方式&#xff0c;使用回溯来解决这个问题。 class Solution: def rob(self, nums: List[int]) -> int: n len(nums) #数组的长度 def dfs(i): if i<0: #到达边界条件后 return 0 #返回最大金额是0 res max(dfs(i…

 思路一:回溯:按照选和不选的判断方式,使用回溯来解决这个问题。

class Solution:

    def rob(self, nums: List[int]) -> int:

        n = len(nums) #数组的长度

        def dfs(i):

            if i<0: #到达边界条件后

                return 0 #返回最大金额是0

            res = max(dfs(i-1),dfs(i-2)+nums[i]) #如果选,下一次递归的就是i-2,并且要加上nums[i]的值,如果不选,下一次递归i-1。比较选或者不选的最大值并返回。

            return res

        res = dfs(n-1) #传入的是数组的最大下标

        return res

问题:回溯使用递归,时间复杂度是指数级别的,会超时,那如何让时间降下来?

思路二:有两次相同的计算结果,那就把每个位置的计算结果保存下来,可以把时间缩短。

 

class Solution:

    def rob(self, nums: List[int]) -> int:

        n = len(nums)

        cache = [-1]*n #因为每个位置一定不是负数

        def dfs(i):

            if i<0:

                return 0

            if cache[i] != -1: #当前的位置不是-1,那么这个位置被计算过,直接返回计算的结果

                return cache[i] 

            res = max(dfs(i-1),dfs(i-2)+nums[i])

            cache[i] = res #把当前位置的计算结果保存

            return res

        res = dfs(n-1)

        return res

问题:这种方式的空间复杂度就是O(n),如何将空间复杂度降下来:递推

思路三:我们可以确定的知道每个节点是那几个数归的结果,那把递的过程省略,直接归,也就是从下往上计算结果。

 

 循环对数组下标有要求,所以下标从2开始。

class Solution:

    def rob(self, nums: List[int]) -> int:

        n = len(nums)

        f = [0]*(n+2) #归的数组长度是n+2,每个数组的值是0

        for i,x in enumerate(nums): #遍历nums

            f[i+2] = max(f[i+1],f[i]+x) # 等同于res = max(dfs(i-1),dfs(i-2)+nums[i])

        return f[n+1]

改进空间复杂度:

class Solution:

    def rob(self, nums: List[int]) -> int:

        n = len(nums)

        f0 = f1 = 0

        for i,x in enumerate(nums):

            new_f = max(f1,f0+x)

            f0 = f1

            f1 = new_f

        return f1

思路:

class Solution:

    def climbStairs(self, n: int) -> int:

        dp0 = 1

        dp1 = 1

        if n <= 1:

            return 1

        dp = 0

        for i in range(2,n+1):

            dp = dp0 + dp1

            dp0 = dp1

            dp1 = dp

        return dp

 思路:

 

class Solution:

    def minCostClimbingStairs(self, cost: List[int]) -> int:

        n = len(cost)

        dp0 = 0 #第0级台阶的顶部最小花费是0

        dp1 = min(cost[0],cost[1]) #第1级台阶的顶部台阶的最小花费是cost[0]或cost[1]的最小值

        for i in range(2,n):

            dp = min(dp1+cost[i],dp0+cost[i-1])

            dp0 = dp1

            dp1 = dp

        return dp1

http://www.mmbaike.com/news/38009.html

相关文章:

  • 网站开发洲际网站seo服务公司
  • 网站制作公司天强科技无锡谷歌推广
  • 餐饮连锁企业网站建设方案惠州seo网络推广
  • 淄博做网站的公司网站优化排名推广
  • 怎么做自己下单的网站crm系统成功案例分享ppt
  • 全屏网站宽度正规推广平台有哪些
  • 美国访问国内网站常州网站建设优化
  • 苏州网站建设logo长沙网站优化公司
  • 手机网站需要什么最好用的磁力搜索器
  • 网站开发用台式机电脑配置跨境电商网站
  • 免费做图网站有哪些谷歌google官网入口
  • 我建设的网站打开很慢百度网址导航
  • 网站建设公司厦门百度账号批发网
  • wifi管理系统登录入口简阳seo排名优化课程
  • 成都集团网站建设广东vs北京首钢
  • 定制网站开发蒙特灰色关键词代发可测试
  • 个人网站可以做哪些主题百度网盘网站入口
  • 政府网站集群建设汇报企业软文怎么写
  • 公司的网站建设费进入什么科目昆明优化网站公司
  • 网站的用户运营值得做吗盘多多网盘资源库
  • 好的网站模板种子搜索引擎
  • app网站公司网站推广的10种方法
  • 公司管理制度完整版aso排名优化知识
  • 大连企业建站系统脚上起小水泡还很痒是怎么回事
  • wordpress上传至哪个目录下安卓优化大师hd
  • 网站开发语言是什么网址域名
  • 商丘小程序开发公司seo对各类网站的作用
  • 怎么做帖子网站销售渠道都有哪些
  • java做教程网站营销咨询公司经营范围
  • 做的网站缩小内容就全乱了百度权重查询网址