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

建设工程施工合同的特征seo产品优化免费软件

建设工程施工合同的特征,seo产品优化免费软件,做企业网站有效果吗,展厅装修设计公司有494. 目标和 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可以在 2 之前添加 ,在 1 之前添加 - …

494. 目标和

给你一个非负整数数组 nums 和一个整数 target 。

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

  • 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。

返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

思路:

从数组里的元素->物品的价值,target->背包的容量。因为有正负,所以商品的价值可正客负。与昨天类似,可以先将所有的数看成正数,那么,每将一个数的符号改为负数,总数就减少到 totalsum - 2nums[i], 这道题目就转换成,通过修改符号使得 totalsum变为target的选择数目。

既然如此,就可以将这道题看作背包问题。(totalsum - target)// 2 就是背包的容量,nums[i]就是物品的体积。求使用nums[i]填满背包的方法数。

那么,dp[i]的定义就是 填满容量为i的背包的方法数,转移方程为 dp[i] += dp[i - nums[j]] , 先遍历 物品(nums数组),再倒序遍历容量(dp数组),最后返回dp[target].

根据题意,当 totalsum 小于 target 时,方法数一定为0,当(totalsum - target)% 2 == 1时,方法数一定为0(因为2nums[i] 一定为偶数)。当target为0,且totalsum满足上列要求是,一定可以找到且只能找到一个方法满足条件,故dp[0]=1

python:

class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:totalsum = sum(nums)if totalsum < target:return 0if (totalsum - target) % 2 == 1:return 0target_num = (totalsum - target) // 2dp = [0 for _ in range(target_num + 1)]dp[0] = 1for num in nums:for i in range(target_num, num-1, -1):dp[i] += dp[i - num]return dp[target_num]

474. 一和零

给你一个二进制字符串数组 strs 和两个整数 m 和 n 。

请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。

如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。

示例 1:

输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3
输出:4
解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4 。
其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"} 。{"111001"} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 。

示例 2:

输入:strs = ["10", "0", "1"], m = 1, n = 1
输出:2
解释:最大的子集是 {"0", "1"} ,所以答案是 2 

思路:可以把这道题看作是二维的01背包,字符串数组的字符串的0和1的个数就是二维的空间。动态规划数组 dp[i][j] 表示 背包容量为 m = i,n = j 时的的最大子集长度,转移方程为 dp = max( dp[i][j], dp[ i - 字符串0的个数, j - 字符串1的个数] + 1)

class Solution:def findMaxForm(self, strs: List[str], m: int, n: int) -> int:dp = [[0] * (n + 1) for _ in range(m + 1)] # 遍历物品for s in strs:ones = s.count('1')  zeros = s.count('0')  # 遍历背包容量且从后向前遍历for i in range(m, zeros - 1, -1):for j in range(n, ones - 1, -1):dp[i][j] = max(dp[i][j], dp[i - zeros][j - ones] + 1) return dp[m][n]

http://www.dinnco.com/news/63637.html

相关文章:

  • 建设网站的技术方案百度关键词排名怎么做
  • 大学做html个人网站素材站长工具高清无吗
  • 重庆网站开发建设山西seo顾问
  • 东莞工厂搜索引擎优化排名seo
  • 常州网站定制sem营销是什么意思
  • 赤峰做网站的广东seo网站设计
  • 锡林浩特建设局网站旺道seo优化软件怎么用
  • 福州便民网首页关键词排名优化是什么意思
  • 北京国税局网站做票种核定网站的收录情况怎么查
  • 贵州网站建设公司百度一下你就知道主页
  • 河北 网站建设百度公司总部地址
  • 太原做网站联系方式中国十大seo
  • 网站ui设计是什么意思可以全部免费观看的软件
  • 做网站如何用模板小吃培训机构排名前十
  • 江苏网站建设网站排名优化百度热搜seo
  • 网站建设公司的前景seo技术 快速网站排名
  • 平度推广网站建设北京seo技术交流
  • 泰州哪家做网站建设比较好磁力兔子
  • 北海建设厅网站seo的中文是什么
  • 网站建设项目wbs中国产品网
  • 网站服务器租用价格怎么算电子商务培训
  • 可以做问卷挣钱的网站搜索引擎seo如何优化
  • 石家庄学做网站建设培训seo单页面优化
  • 专业网站建设哪家好营销策略有哪些有效手段
  • 制作网站商百度系app有哪些
  • 先做网站再付款 怎么回答自己怎么建网站
  • 沈阳市人大网站建设时间网络推广的常用方法
  • 网站建设营销开场白深圳网络营销和推广渠道
  • 网站建设公司如何做大2345网址导航官网
  • 做网站公司哪好农业推广