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

工艺品网站建设管理系统前端模板

工艺品网站建设,管理系统前端模板,广西水利电力建设集团网站,河间做网站 申梦网络1049. 最后一块石头的重量 II 有一堆石头#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合#xff0c;从中选出任意两块石头#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y#xff0c;且 x y。那么粉碎的可能结果…1049. 最后一块石头的重量 II 有一堆石头用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合从中选出任意两块石头然后将它们一起粉碎。假设石头的重量分别为 x 和 y且 x y。那么粉碎的可能结果如下 如果 x y那么两块石头都会被完全粉碎如果 x ! y那么重量为 x 的石头将会完全粉碎而重量为 y 的石头新重量为 y-x。 最后最多只会剩下一块 石头。返回此石头 最小的可能重量 。如果没有石头剩下就返回 0。 示例 1 输入stones [2,7,4,1,8,1] 输出1 解释 组合 2 和 4得到 2所以数组转化为 [2,7,1,8,1] 组合 7 和 8得到 1所以数组转化为 [2,1,1,1] 组合 2 和 1得到 1所以数组转化为 [1,1,1] 组合 1 和 1得到 0所以数组转化为 [1]这就是最优值。示例 2 输入stones [31,26,33,21,40] 输出5思路 //dp[j] 表示能装满容量为j的背包的最大价值。这里的价值就是石头的重量 //dp[j] max[dp[j],dp[j-stone[i]]stone[i]]; //初始化为0 //遍历顺序 //打印dp数组 代码 class Solution { public:int lastStoneWeightII(vectorint stones) {//dp[j] 表示能装满容量为j的背包的最大价值。这里的价值就是石头的重量//dp[j] max[dp[j],dp[j-stone[i]]stone[i]];//初始化为0//遍历顺序//打印dp数组int sum 0;int count 0;for(int i 0;istones.size();i){sumstones[i];}count sum /2;vectorintdp(count1,0);for(int i 0;istones.size();i){for(int j count;jstones[i];j--){dp[j] max(dp[j],dp[j-stones[i]]stones[i]);}}return sum-2*dp[count];} }; 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思路 //dp[j] 表示有dp[j]种方法让最终目标和为j。 //dp[j] dp[j-nums[i]]; //初始化dp[0] dp[1] 1; //遍历顺序 //打印dp数组 //背包容量 令负数绝对值和为 right, 正数和为left则有leftright sum, left sum -right // target right - left;  right lefttarget //right -target sum -right //right (targetsum)/2 代码 class Solution { public:int findTargetSumWays(vectorint nums, int target) {//dp[j] 表示有dp[j]种方法让最终目标和为j。//dp[j] dp[j-nums[i]];//初始化dp[0] dp[1] 1;//遍历顺序//打印dp数组//背包容量 令负数绝对值和为 right, 正数和为left则有leftright sum, left sum -right// target right - left; right lefttarget//right -target sum -right//right (targetsum)/2int sum 0;for(int i 0;inums.size();i){sum nums[i];} if(abs(target)sum) return 0;if((targetsum)% 21) return 0;int bagsize (target sum)/2;vectorintdp(bagsize1,0);dp[0] 1;for(int i 0;inums.size();i){for(int j bagsize;jnums[i];j--){dp[j] dp[j-nums[i]];}}return dp[bagsize];} }; 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 。思路 //dp[i][j]表示i个0j个1的最大子集个数dp[i][j] //dp[i][j] max(dp[i][j],dp[i-zore][j-one]1) //初始化dp[0][0] 0; //遍历顺序 //打印dp数组 代码 class Solution { public:int findMaxForm(vectorstring strs, int m, int n) {//dp[i][j]表示i个0j个1的最大子集个数dp[i][j]//dp[i][j] max(dp[i][j],dp[i-zore][j-one]1)//初始化dp[0][0] 0;//遍历顺序//打印dp数组vectorvectorintdp(m1,vectorint(n1,0));for(string str:strs){int zore 0;int one 0;for(char c:str){if(c0)zore;elseone;}for(int i m;izore;i--){for(int j n;jone;j--){dp[i][j] max(dp[i][j],dp[i-zore][j-one]1);}}}return dp[m][n];} }; 还有很多瑕疵还需继续坚持
http://www.pierceye.com/news/522645/

相关文章:

  • 网络营销型网站律师做推广的网站
  • 网站建设公司排行济南网页制作设计营销
  • 网站功能建设与栏目划分wordpress 系统需求
  • 做网络推广要做网站吗wordpress中对视频排序
  • 三合一网站怎么建立如何做网站规范
  • 浙江网站改版设计公司网站建设实训目的
  • 建设网站装配式建筑楼房东莞网站建设php方案
  • 宜昌网站制作公司排名眉山招聘网站建设
  • 网站开发项目经理工资公司网站建设管理
  • 大良o2o网站建设百度手机卫士下载安装
  • 张家界市网站建设设计简单的php购物网站源码
  • 网站的流量检测怎么做禹州做网站的公司
  • 百度网站录入北京到安阳高铁
  • 去马来西亚做网站网站安卓网站开发平台
  • jsp 哪些网站利用技术搭建网站做网站代理
  • 网站建设 分类广告html做网站自适应宽度
  • 鄂州市建设局网站佰牛网站建设
  • 织梦网站上传及安装步骤农畜产品销售平台的网站建设
  • 网站续费如何做分录做交互设计的网站
  • 国家网站备案查询系统安丘网站建设多少钱
  • 长沙公司网站设计鹤壁建设网站推广公司电话
  • 电子商务网站建设与管理实务电子商务网站的构建
  • 做网站的集团用什么自己做网站
  • 买网站空间网站模块图片
  • 上海建设网站公在微信上怎么开店
  • 哪家网站雅虎全球购做的好做一婚恋网站多少钱
  • 苏州企业网站公司都有哪些php开源企业网站系统
  • wordpress收录很慢自己的网站如何优化
  • 个人介绍网站源码1v1网站建设
  • 大宇网络做网站怎么样app制作器下载软件