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

开个网络公司要多少钱湖南关键词优化排名推广

开个网络公司要多少钱,湖南关键词优化排名推广,网站建设要多钱,武汉科技职业学院校长第一题:打家劫舍【11:54】 不能同时取相邻情况下的max dp[n] max(不包含dp[n-1])nums[n] 完整写出dp【n】含义、递推公式、初始化确实有利于思考,最后再用少量ex检验自己的思考对不对 但还是有bug:最后return的时候按惯例return了dp[num…

第一题:打家劫舍【11:54】

不能同时取相邻情况下的max

dp[n] = max(不包含dp[n-1])+nums[n]

完整写出dp【n】含义、递推公式、初始化确实有利于思考,最后再用少量ex检验自己的思考对不对

但还是有bug:最后return的时候按惯例return了dp[nums.size()],但由于不能相邻的原因,dp[nums.size()-1]必然不包含dp[nums.size()-2],所以倒数第二个数也可能是最大的!!!!


另一种思路?dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]

dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);

class Solution {
public:int rob(vector<int>& nums) {//dp[n]:最后一个偷n,偷窃到的最高金额vector<int> dp(nums.size());//dp[n]=maxdp[i]+nums[n],维护max变量dp[0] = nums[0];if(nums.size()==1){return dp[0];}dp[1] = nums[1];int max =  dp[0];for(int i = 2;i<nums.size();i++){dp[i] = max+nums[i];if(dp[i-1]>max){max = dp[i-1];}}return dp[nums.size()-1] > dp[nums.size()-2] ? dp[nums.size()-1] : dp[nums.size()-2];//倒数第二个也能是max}
};

第二题:完全平方数【没思路】

第三题:零钱兑换

dp[n]:和为n的最小硬币数

dp[n] = min(dp[n-coin[i]]+1,dp[n])

初始化:1.dp[0]=0【amount = 0的时候要能返回0,而不是-1】

2.其他dp应该初始化INT_MAX

tips:INT_MAX+1会越界

初版代码问题:1、只初始化了dp[i]==coins[j]的情况没有考虑如果e.g.10拿6块凑不了怎么办;以及初始化dp[i]=coins[j]没有用,会在for遍历中覆盖

2.dp[i] = min+1时,INT_MAX也加一导致越界

3.他没说coins是按递增排列,有个用例是最后一个coin很小。所以:
if (i >= coins[j]) { ****} else {break; }   如果i<coins[j]就break的逻辑是错的

p.s.还是没懂:为啥amount=11,coins=[1,2,5]输出-1,打印dp[i]都是10000????cout还不给输出[可能和flush有关]

class Solution {
public:int coinChange(vector<int>& coins, int amount) {if(amount == 0){return 0;}//dp[n]金额n所需最少硬币数vector<int> dp(amount+1);//dp[n] = mindp[n-coins[i]]+1//初始化dp[0] = 0;//amount==0int size = 0;for(int i = 0;i<coins.size();i++){if(coins[i]<=amount){//<=dp[coins[i]] = 1;}else{size = i+1;}}int min = 9999;//你可以认为每种硬币的数量是无限的。for(int i=1;i<=amount;i++){//dp[i]for(int j = 0;j<size;j++){//coins[j]if(i>=coins[j]){min = dp[i-coins[j]]<min ? dp[i-coins[j]] : min;}else{break;}}dp[i] = min+1;min = 9999;}if(dp[amount] ==10000 ){return -1;}else{return dp[amount];}}
};

ac代码如下: 

class Solution {
public:int coinChange(vector<int>& coins, int amount) {if (amount == 0) {return 0;}// dp[n] 表示金额 n 所需的最少硬币数vector<int> dp(amount + 1, INT_MAX); // 初始化为最大值dp[0] = 0;                           // amount == 0 时需要 0 个硬币int min = INT_MAX;// 遍历所有金额for (int i = 1; i <= amount; i++) {// 遍历所有硬币for (int j = 0; j < coins.size(); j++) {if (i >= coins[j]) {// 如果 dp[i - coins[j]] 不是初始值,则更新 minCoinsif (dp[i - coins[j]] != INT_MAX) {min = std::min(min, dp[i - coins[j]]);}}// else {//     break;// }}// cout << "dp[" << i << "] = " << dp[i] << endl;if (min != INT_MAX) {dp[i] = min + 1;}min = INT_MAX;}// 如果 dp[amount] 仍然是初始值,说明无法凑出 amountif (dp[amount] == INT_MAX) {return -1;} else {return dp[amount];}}
};

http://www.dtcms.com/wzjs/203969.html

相关文章:

  • 深圳外贸英文网站设计联系电话百度网络营销中心
  • 做商城网站需要办理什么网络推广都有什么方式
  • 企业网站开发需要多钱东营网站建设费用
  • 网站制作怎么自己做百度竞价排名正确解释
  • 安陆网站建设推广普通话手抄报内容
  • 手机商城建站系统网站建设企业网络规划设计方案
  • 如何做电商网站 昆明电商网站设计论文
  • 大学网站群建设方案百度宣传推广
  • 小说网站如何做书源注册推广赚钱一个40元
  • 投资建设项目管理师报名网站长沙网站优化培训
  • wordpress手机版论坛网页优化方法
  • 做新得网站可以换到原来得域名嘛网络推广都是收费
  • 西安的网站制作公司建一个网站大概需要多少钱
  • 不备案的网站可以做竞价吗百度推广管家
  • 绍兴市网站建设今晚比分足球预测
  • 成都大型的做网站的公司腾讯云1元域名
  • 制作网站的方法有哪些内容关键词诊断优化全部关键词
  • 2016年做网站能赚钱网络优化
  • 昆山开发区网站制作百度seo公司哪家强一点
  • 高端网站建设设计公司2023年8月份新冠症状
  • 在那个网站做付汇的延期说明宁波seo企业推广
  • 郑州网站建设汉狮seo专业优化方法
  • wordpress 主页链接武汉建站优化厂家
  • 深圳做网站的公司有哪些东莞优化排名公司
  • 网站开发属于什么职位类别营销策划公司靠谱吗
  • vi手册免费模板网站免费seo
  • 合肥高端网站建设济南seo整站优化厂家
  • 详述网站建设的过程四川省人民政府官网
  • 网站上可以做直播吗搜索引擎营销的内容
  • 抓取的网站如何做seo游戏推广员是做什么的