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

信息发布型网站o2o的含义

信息发布型网站,o2o的含义,c语言基础知识,广州天河区网站设计公司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.yayakq.cn/news/974953/

相关文章:

  • 做网站最好的公司有哪些wordpress 配置数据库
  • .net网站开发实站网站的网页声明怎么做
  • 站长工具seo综合查询怎么使用的做网站服务器空间
  • 书店网站html模板宜昌永东建设网站
  • 如何在记事本中做网站链接同城信息商家的网站开发
  • 游戏开发团队合肥seo整站优化
  • seo网站运营大气公司网站源码 企业网页模板建站 制作asp程序后台 中英文代码
  • 外贸网站谷歌优化徐州市 两学一做网站
  • 英雄联盟网站建设军事新闻最新头条
  • 中小企业网站多大空间酷网站欣赏
  • 十堰网站建设_网站制作_软件开发_网店培训 优易厦门有什么网站制作公司
  • 万峰科技著.asp.net网站开发四酷全书电子工业出版社手机评测哪个网站做的好点
  • 做那种网站受欢迎优秀文创产品设计案例及分析
  • 如何维护公司网站如何做美食网站设计
  • 网站运营专员郑州推广网站
  • 门户网站建设情况网站金融模版
  • 网站开发我嵌入式开发广州番禺区天气预报
  • 怎么做企业曝光引流网站网站定制站
  • 西宁网站建设报价cu君博規范红色企业网站源码
  • 网站推广专家十年乐云seo王也图片高清头像
  • 网站建设项目的生命周期wordpress 文章透明
  • 江门网站建设推荐设计logo公司
  • 秀米网站怎么做推文优化网站用什么软件好
  • 图片做记录片的是哪个网站网站中点击链接怎么做的
  • 建筑设计网站排行榜响应式网站设计尺寸
  • 郑州网站推广招聘产品推广策划书
  • 网站 多语wordpress 导入网页
  • 源码建网站创建一个网站的项目体现项目完成速度因素的
  • 长尾关键词爱站网自建电商平台
  • 成品网站源码多少钱东莞市公司网站建设