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

广州小程序开发鄂州百度seo技术厂家

广州小程序开发,鄂州百度seo技术厂家,建站源码,做网站logo用啥软件关键词:动态规划 01背包 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 目录 题目: 思路: 复杂…

关键词:动态规划 01背包

一个套路:

  • 01背包:空间优化之后dp【target+1】,遍历的时候要逆序遍历
  • 完全背包:空间优化之后dp【target+1】,遍历的时候要正序遍历

 

目录

题目:

思路:

复杂度计算:

代码:


题目:

思路:

这题能想到用01背包并正确用起来有点难哦!

这里面有三样东西,一些strs,m个0和n个1。

我刚开始是希望把strs当作容器,把0和1装进strs这个容器里,但是不行。

转换思路:把m个0和n个1作为两个容器,strs里的0和1分别装进这两个容器里。

因为有两个容器,所以dp得要两个维度dp[m+1][n+1]

其他都和一维的01背包一样

状态:dp[j][k] 前i个str中,使用 j个 0 和 k 个 1 的情况下最多可以得到的字符串数量。

转移方程:dp[j][k]=max(dp[j][k],dp[j-zeros][k-ones]+1)【zeros、ones:第i个str0和1的个数】

  • 如果选dp[j][k]:不要第i个str,维持上一个str的状态。
  • 如果选dp[j-zeros][k-ones]+1:要第i个str,数量+1。

初始化:dp[j][k]=0 因为是求最大

复杂度计算:

时间复杂度O(lmn+L) l=strs.size() L=所有str的字符总数(统计了每个str的01数量)

空间复杂度O(mn)

代码:

class Solution {
public:int findMaxForm(std::vector<std::string>& strs, int m, int n) {std::vector<std::vector<int>> dp(m + 1, std::vector<int>(n + 1));for (const auto& str:strs){int zeros = 0, ones = 0;for (const auto& c : str){if (c == '0')++zeros;else ++ones;}for (int j = m; j >= zeros; --j){for (int k = n; k >= ones; --k){dp[j][k] = std::max(dp[j][k], dp[j - zeros][k - ones] + 1);}}}return dp[m][n];}
};

http://www.yayakq.cn/news/670021/

相关文章:

  • 网站开发及app开发报价单购买了域名之后怎么做网站
  • 成都广告设计公司电话站长工具seo综合查询下载
  • 房产门户网站平台搭建微信分销系统有哪些平台
  • asp.net网站制作教程有什么免费推广软件
  • 农村建设集团有限公司网站首页江苏工程招标网
  • 湛江模板建站平台网站备案成功然后怎么做
  • 网站建设推广书籍中国建设银行新余分行网站
  • 做国际网站多少钱企业网站开发与设计
  • 软件工程 旅游网站开发er图百度风云搜索榜
  • 34线城市做网站推广wordpress模板网
  • 网站地址大全镇江峻程网络科技有限公司
  • 东莞高端品牌网站建设做网站好的公司有哪些
  • 凡科网站建设教学视频濮阳公司建站
  • 北京专业企业营销网站建设网站建站模版
  • 可以做微课PPT模板 网站在线html制作网页
  • 无锡怎么做网站推广福田深圳网站建设
  • 首次做淘宝客网站要安装程序吗近期新闻热点
  • 长沙铭万做网站wordpress语音搜索
  • 生鲜网站建设背景该如何选择深圳网站建设公司
  • 陕西省建设监理协会网站证件查询麻辣烫配方教授网站怎么做
  • 做外链网站做数据库与网站招什么人
  • app建设网站福步外贸论坛app官网
  • 云南省住房和城乡建设厅官方网站wordpress做文学网
  • 工商管理网站哪个网站可以做平面兼职
  • 河南网站排名app推广团队
  • 做电商网站需要会些什么问题上海网站建设 浦东
  • 成都网站建设的费用游戏分销代理平台
  • 涂料增稠剂移动网站建设公司成都网站建设联系电话
  • 外文网站建站团购网站大全
  • Wordpress网站能做seo吗网站后台密码忘记了怎么办 ftp进不去