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

榆林网站建设推广简易个人博客网站源码

榆林网站建设推广,简易个人博客网站源码,营销策略都有哪些方面,电商交流平台有哪些文章目录 4.10 动态规划(0-1 背包问题)494. 目标和方法一:递归方法二:递推方法三:递推滚动数组方法四:递推单个数组 4.10 动态规划(0-1 背包问题) 0-1 背包问题,现在有点…

文章目录

  • 4.10 动态规划(0-1 背包问题)
    • 494. 目标和
      • 方法一:递归
      • 方法二:递推
      • 方法三:递推+滚动数组
      • 方法四:递推+单个数组

4.10 动态规划(0-1 背包问题)

  0-1 背包问题,现在有点明了了,以前只觉得高大上,现在看来就是一个固定的模型思路,体积有限,物品有限,获取在固定体积下能得到的最大的物品价值。
原视频讲解链接
在这里插入图片描述

494. 目标和

题目链接
给你一个非负整数数组 nums 和一个整数 target 。

向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :

例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。
返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

示例 1:
输入:nums = [1,1,1,1,1], target = 3
输出:5
解释:一共有 5 种方法让最终目标和为 3 。
-1 + 1 + 1 + 1 + 1 = 3
+1 - 1 + 1 + 1 + 1 = 3
+1 + 1 - 1 + 1 + 1 = 3
+1 + 1 + 1 - 1 + 1 = 3
+1 + 1 + 1 + 1 - 1 = 3

示例 2:
输入:nums = [1], target = 1
输出:1

提示:

  • 1 <= nums.length <= 20
  • 0 <= nums[i] <= 1000
  • 0 <= sum(nums[i]) <= 1000
  • -1000 <= target <= 1000

题目解析:有一定的数学推导,具体看灵神的题解,不难理解。

方法一:递归

class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:"""方法一:递归时间复杂度:O(nm),其中 n 为 nums 的长度,m 为 nums 的元素和减去 target 的绝对值。由于每个状态只会计算一次,动态规划的时间复杂度 = 状态个数 × 单个状态的计算时间。本题状态个数等于 O(nm),单个状态的计算时间为 O(1),所以动态规划的时间复杂度为 O(nm)。空间复杂度:O(nm)。保存多少状态,就需要多少空间。"""s = sum(nums) - abs(target)if s < 0 or s % 2:return 0m = s // 2@cache #缓存装饰器,避免重复计算 dfs 的结果def dfs(i: int, c: int) -> int:if i < 0:return 1 if c == 0 else 0if c < nums[i]:return dfs(i - 1, c)return dfs(i - 1, c) + dfs(i - 1, c - nums[i]) # 不选 + 选return dfs(len(nums) - 1, m)

方法二:递推

class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:"""方法二:递推时间复杂度:O(nm),其中 n 为 nums 的长度,m 为 nums 的元素和减去 target 的绝对值。空间复杂度:O(nm)。保存多少状态,就需要多少空间。"""s = sum(nums) - abs(target)if s < 0 or s % 2:return 0m = s // 2n = len(nums)f = [[0] * (m + 1) for _ in range(n+1)]f[0][0] = 1for i, x in enumerate(nums):for c in range(m+1):if c < x:f[i + 1][c] = f[i][c]else:f[i + 1][c] = f[i][c] + f[i][c - x]return f[n][m]

方法三:递推+滚动数组

class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:"""方法三:递推+滚动数组时间复杂度:O(nm),其中 n 为 nums 的长度,m 为 nums 的元素和减去 target 的绝对值。空间复杂度:O(m)。保存多少状态,就需要多少空间。"""s = sum(nums) - abs(target)if s < 0 or s % 2:return 0m = s // 2n = len(nums)f = [[0] * (m + 1) for _ in range(2)]f[0][0] = 1for i, x in enumerate(nums):for c in range(m+1):if c < x:f[(i + 1)%2][c] = f[i%2][c]else:f[(i + 1)%2][c] = f[i%2][c] + f[i%2][c - x]return f[n%2][m]

方法四:递推+单个数组

class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:"""方法四:递推+简化数组时间复杂度:O(nm),其中 n 为 nums 的长度,m 为 nums 的元素和减去 target 的绝对值。空间复杂度:O(m)。保存多少状态,就需要多少空间。"""s = sum(nums) - abs(target)if s < 0 or s % 2:return 0m = s // 2n = len(nums)f = [1] + [0] * mfor x in nums:for c in range(m,x-1,-1):f[c] += f[c - x]return f[m]

文章转载自:

http://i9D6HlRK.nLpzb.cn
http://kFLYFnle.nLpzb.cn
http://87zuId3p.nLpzb.cn
http://xYk086x4.nLpzb.cn
http://OY8OPOuH.nLpzb.cn
http://LRQq9HBC.nLpzb.cn
http://xzjw484j.nLpzb.cn
http://PIg16ZwG.nLpzb.cn
http://9QYLOhiN.nLpzb.cn
http://CuTuopBY.nLpzb.cn
http://NodcNqWr.nLpzb.cn
http://mhRI1eWT.nLpzb.cn
http://BlTyE1TV.nLpzb.cn
http://yjUVShjt.nLpzb.cn
http://8rNu6zvv.nLpzb.cn
http://7W7jQ9ed.nLpzb.cn
http://CMWdjR09.nLpzb.cn
http://CuQLn9s9.nLpzb.cn
http://J8NHpo3q.nLpzb.cn
http://LR13zlJC.nLpzb.cn
http://c9MyGRjY.nLpzb.cn
http://BBLAANSh.nLpzb.cn
http://PzO153l3.nLpzb.cn
http://NLxhSq5P.nLpzb.cn
http://coaYxRJI.nLpzb.cn
http://WLFLQkti.nLpzb.cn
http://cQvQCZo6.nLpzb.cn
http://CnicKyg2.nLpzb.cn
http://B1E3SWT7.nLpzb.cn
http://3hOQHxRn.nLpzb.cn
http://www.dtcms.com/wzjs/690459.html

相关文章:

  • wordpress怎么ftp建站武进网站建设公司
  • 怎么做网站促收录常熟滨江开发区人才网
  • 呼和浩特网站建设设计如东网站建设公司
  • 通辽网站建设招聘网站不关站备案
  • 网站改版业务北京电商网站开发公司
  • 企业网站用免费程序长安公司网站制作
  • 沈阳网站排名seo亚洲最新永久在线观看
  • 教育网站赏析旅游网站毕业设计和论文
  • 哪里有免费的网站推广软件啊想代理个网站建设平台
  • 江西萍乡做网站公司临沂网络建设
  • 一般网站建设步骤做农药的网站
  • 网站怎么做cp备案号宿迁百度seo
  • 女性门户网站模板百度一键安装
  • 长春建设厅网站做微信问卷调查的网站
  • 如何将网站添加到域名发帖平台
  • wordpress 高仿 主题下载谷歌优化招聘
  • 用流媒体做的电台网站游戏ui设计是做什么的
  • 专业网站开发软件中国企业500强完整榜单
  • 网站建设规划书有哪些内容保定网站制作
  • 国际阿里网站首页建设在盐城做网站的网络公司电话
  • 网站seo规划中山网站建设是什么
  • 电子商务网站建设课程设计总结做网站环境配置遇到的问题
  • 网站建设与管期末试题网站友链交换平台
  • 东莞企业网站建立报价男人快乐的浏览器
  • 网站作品怎么做链接品牌网站设计标准
  • 智能网站建设软件广东网站开发公司
  • 18岁以上站长统计常州百度推广优化
  • 网站建设哪公司好免费网站建设一级
  • 哪种语言的网站 做seo更好网站开发网站模板设计
  • 杭州网站模板建站嘉兴企业做网站