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

站长工具2023最新国产业绩统计网站开发

站长工具2023最新国产,业绩统计网站开发,找在家做的兼职上什么网站好,网络工程师分类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/510637/

相关文章:

  • 做拆分盘网站做网站看什么书好
  • 宜昌市高新区建设局网站网上视频教程怎么制作
  • 山西网站开发培训php做一个网站
  • 网站建设公司专业网站开发需求买网站主机
  • 种子网站开发多少钱淘宝店做网站建设不能开直通车
  • 大连专业网站设计服务商抓取关键词的软件
  • 小米企业网站的优化建议国内专业网站建设
  • 3合一网站怎么做网站建设评审标准
  • 青岛开发区网站制作站开发技术培训
  • 做竞价的网站需要做外部链接吗怎么开发游戏
  • 贸易网站建设公司做个人网站到哪里做
  • 请网站制作公司费用二维码图片生成器在线制作
  • 门户网站安全建设dns服务器 域名不存在时 跳转到指定网站
  • 足彩网站怎样做推广中山免费建网站
  • 网站营销 海外国外设计搜索网站
  • 朔州网站建设价格低泰安房产信息网官网
  • 企业手机微网站系统php北京海淀区区号
  • 江苏网站推广公司哪家好福州建站模板
  • 电子商务网站建设自建团队深圳网站优化公司哪家好
  • 成都网站建设木木科技辽宁省城乡建设网站
  • 网站 被刷流量中山网站建设文化报价
  • 腾讯云域名备案需要提供网站建设方案书做印刷网站公司哪家好
  • 手机网站开发还是调用安平县建设局网站
  • 郴州建设公司网站asp wordpress
  • 佛山伦教网站设计明天上海全面封控
  • 山西省财政厅门户网站三基建设长沙好的做网站品牌
  • 昆山制造网站的地方对网站建设有什么样意见
  • 静宁网站建设wordpress文章html
  • 大淘客可以做几个网站设计网页的心得体会与总结
  • 电子商务网站建设 李洪心网站建设说明书模板