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

域名交易中心欧美seo查询

域名交易中心,欧美seo查询,中英文网站用同域名,商城网站建设与维护方案今天做的头皮发麻#xff0c;除了第一道题是自己AC的#xff0c;剩下两道题目都是看视频才AC的#xff0c;主要是看了视频也花了很久时间才想清楚。 1049. 最后一块石头的重量 II 这道题一开始没什么思路#xff0c;但是看到提示说和昨天的分割子集很像#xff0c;然后我…今天做的头皮发麻除了第一道题是自己AC的剩下两道题目都是看视频才AC的主要是看了视频也花了很久时间才想清楚。 1049. 最后一块石头的重量 II 这道题一开始没什么思路但是看到提示说和昨天的分割子集很像然后我就把思路想出来了。这道题目也是先将数组内元素求和然后除以二背包的最大容量就设置为sum / 2。和昨天那道题一样的思路在动态规划的时候让背包尽可能装满就行了。在遍历结束以后求剩下元素与背包最大价值之间的差值即可。 class Solution { public:int lastStoneWeightII(vectorint stones) {//1.确定dp[i][j]的含义在背包容量为j,下标为[0, i]的数字组合中的最优方案的最大价值//2.确定递推公式 dp[i][j] max(dp[j], dp[j - weight[i]] value[i])//3.dp数组初始化 dp初始化为0向量//4.确定遍历顺序先物品再背包(可互换)//5.打印数组(省略)int sum accumulate(stones.begin(), stones.end(), 0);vectorvectorint dp(stones.size(), vectorint(sum / 2 1));//初始化for(int i 0; i stones.size(); i)dp[i][0] 0;for(int i 1; i sum / 2; i){if(i stones[0]) dp[0][i] stones[0];else dp[0][i] 0;}//开始动态规划for(int i 1; i stones.size(); i){for(int j 1; j sum / 2; j){if(j stones[i]) dp[i][j] dp[i - 1][j];else dp[i][j] max(dp[i - 1][j], dp[i - 1][j - stones[i]] stones[i]);}}return sum - 2 * dp[stones.size() - 1][sum / 2];} };494. 目标和 笑死思路根本就想不到看了视频才AC的但是按照视频的思路还是遇到一个测试样例(nums [0,0,0,0,0,0,0,0,1],target1)通过不了想了一下把遍历条件中的改成了然后就全部AC了我觉得这个改动主要还是为了应对这个极端的测试案例其余情况下用是可以直接AC的。我发现但凡dp数组元素代表的不是最大价值如符合条件的组合个数符合条件的集合长度等则遍历背包的时候必须要倒序遍历来避免重复问题这道题目主要就难在dp数组的含义很难构造且初始化条件很不好想一旦明确了dp数组的含义和初始条件递推公式起始很好想。 class Solution { public:int findTargetSumWays(vectorint nums, int target) {//1.确定dp[j]的含义在背包容量为j的情况下,有dp[j]种方法达到指定价值//2.确定递推公式 dp[j] dp[j] dp[my_target - j]//3.dp数组初始化 dp[0] 1//4.确定遍历顺序先物品再背包(背包倒序遍历)//5.打印数组(省略)int sum accumulate(nums.begin(), nums.end(), 0);if(((sum target) % 2 1) || (abs(target) sum)) return 0; //target取值不合理达不到//可以达到targetint m nums.size();int n (sum target) / 2;vectorint dp(n 1, 0);//初始化dp[0] 1;//开始动态规划for(int i 0; i m; i){for(int j n; j 0; j--){if(j nums[i]) continue;dp[j] dp[j - nums[i]];} }return dp.back();} };474.一和零 被这道题爆杀了刚看到这道题用二维dp数组也不知道该怎么写这道题的背包容量实际上有两个维度一个是0的容量一个是1的容量题目要求的是符合条件的最大子集长度并不是直接求最大价值所以这道题也需要倒序遍历背包dp数组的含义是背包最多能装i个0和j个1的情况下符合条件的子集的最大长度。这道题的初始化很简单dp[0][0] 0。递推公式有点难想如果背包能装下则装下当前字符串后的子集长度为dp[i - x][j - y] 1当然在遍历的时候需要维护最大长度所以应该用max函数将其与自身比较。在遍历结束后直接返回dp[m][n]即可。 class Solution { public:int findMaxForm(vectorstring strs, int m, int n) {//1.确定dp[i][j]的含义在背包容量最多装i个0和j个1的情况下的最长子集的长度//2.确定递推公式 dp[i][j] max(dp[i - x][j - y] 1, dp[i][j])//其中x为当前遍历元素的0的个数y为当前遍历元素的1的个数//3.dp数组初始化 dp[0] 1//4.确定遍历顺序先物品再背包(背包倒序遍历)//5.打印数组(省略)vectorvectorint dp(m 1, vectorint (n 1, 0));//初始化dp[0][0] 0;//开始动态规划for(string s : strs){ //外层循环遍历字符串物品//统计当前字符串的01个数int x 0, y 0;for(char c : s){if(c 0) x 1;else y 1;}//遍历背包特殊情况用两层for循环才能实现for(int i m; i 0; i--){if(i x) break;for(int j n; j 0; j--){if(j y) break;dp[i][j] max(dp[i - x][j - y] 1, dp[i][j]);}}}return dp[m][n];} };做的破大防啊
http://www.hkea.cn/news/14371484/

相关文章:

  • 做ps兼职的网站加盟网站建设服务
  • 旅游商城网站模板客源引流推广app
  • 附近的网站设计制作价格it外包运维服务
  • 晋江网站建设qzdzi做网站静态和动态
  • 金坛网站建设报价wordpress 花瓣
  • 艺术学校网站模板网站建设开发教程视频
  • gzip网站优化兰州网络推广新手
  • cms做网站可以做些什么网站金融外贸是做什么的
  • 温州网站开发建设中山专业制作网站
  • 成都网站建设冠辰哪家强中国做网站的公司有哪些
  • 苏州知名网站建设设计公司seo短视频网页入口引流网址
  • wp网站建设做网站快速赚钱
  • 公司怎样建自己网站合作合同
  • 企业网站四种类型app设计理念怎么写
  • 东莞建设教育网站石家庄制作网页设计
  • .net营销网站开发西安百度推广多少钱
  • 网站推广主要怎么做h5商城网站怎么建设
  • 做h5的网站的区别网络营销郑州网站搭建方案
  • 更新备案 网站 打开零基础怎么做电商
  • 关于做网站的了解点做一个网站成本多少钱
  • 合肥网站策划监控摄像头做斗鱼直播网站
  • 网站实名制注册怎么做天元建设集团有限公司审计项目
  • 电商网站怎样优化哪里可以免费设计装修效果图
  • 商城购物网站设计内容外贸卖货哪个平台好
  • 沧州市网站建设价格男装定制品牌哪个好
  • 网站根目录怎么找wordpress首行空两格
  • 营销型平台网站建设平面设计教程自学
  • 小清新网站设计青岛即墨网站建设
  • h5开发网站优点北斗手表官方网站
  • 网站建设公司普遍存在劣势wordpress不显示 头像