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

git怎么做隐私政策网站代刷网站推广链接免费

git怎么做隐私政策网站,代刷网站推广链接免费,中华艺术宫室内设计,房屋模拟装修软件322. 零钱兑换 思路: 动规5部曲: 1.确定dp数组以及下标的含义: dp数组表示能凑出零钱的最少硬币数,下标表示要兑换的零钱 2.确定递推公式: j为背包容量,i为物品的下标 dp[ j ] min(dp[ j -coins[ i…

322. 零钱兑换

思路:

动规5部曲:

1.确定dp数组以及下标的含义:

dp数组表示能凑出零钱的最少硬币数,下标表示要兑换的零钱

2.确定递推公式:

j为背包容量,i为物品的下标

dp[ j ] = min(dp[ j -coins[ i ] ] +1,dp [ j ])

3.dp数组的初始化:

dp[ 0 ]是背包容量为0的时候,硬币数量为0,因为递归公式是求最小的数值,所以初始化其他的数要是最大值,才不会影响结果。

4.确定遍历顺序

先遍历物品,再遍历背包,先遍历背包,再遍历物品都可以,不同的地方是,在先遍历物品,再遍历背包时,因为先遍历物品,所以j可以直接在coins[ i ]等于物品时开始,

 for (int i = 0; i < coins.size(); i++) { // 遍历物品for (int j = coins[i]; j <= amount; j++) { // 遍历背包if (dp[j - coins[i]] != INT_MAX) { // 如果dp[j - coins[i]]是初始值则跳过dp[j] = min(dp[j - coins[i]] + 1, dp[j]);

但是先遍历背包,再遍历物品不同,此时由于先遍历背包,所以只能在遍历完物品后,在判断语句 if (i - coins[j] >= 0 && dp[i - coins[j]] != INT_MAX )中限制物品的重量大于背包容量的情况

for (int i = 1; i <= amount; i++) {  // 遍历背包for (int j = 0; j < coins.size(); j++) { // 遍历物品if (i - coins[j] >= 0 && dp[i - coins[j]] != INT_MAX ) {dp[i] = min(dp[i - coins[j]] + 1, dp[i]);

代码:

class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount+1,INT_MAX);//dp数组的初始化dp[0] = 0;//组合问题for(int i=0;i <coins.size();i++){for(int j =coins[i];j<=amount;j++){if(dp[j-coins[i]] !=INT_MAX)//为了防止int溢出{dp[j] = min(dp[j],dp[j-coins[i]]+1);}}}if(dp[amount] == INT_MAX)return -1;//当硬币是双数,金额为单数时,无法找零所以无法凑齐return dp[amount];}
};

遇到的问题:

1. if(dp[j-coins[i]] !=INT_MAX)的作用是防止int溢出

279. 完全平方数

思路:

1.确定dp数组以及下标的含义:

dp[ j ]数组代表组成的平方数个数 ,下标表示和为j

2.确定递推公式:

dp[j] = min(dp[j],dp[j-coins[i]]+1);

3.dp数组的初始化:

因为递推公式要取最小值,为了避免影响结果,除了dp[ 0 ],都初始化为INT_MAX

4.确定遍历顺序

都可以

代码:

class Solution {
public:int numSquares(int n) {vector<int> dp(n+1,INT_MAX);//因为测试用例会导致溢出,所以使用更大的类型//dp数组的初始化dp[0] = 0;//遍历顺序for(int i = 0;i * i<=n;i++)//先物品{for(int j = i*i;j<=n;j++)//再背包{if(dp[j- i * i] !=INT_MAX){dp[j] =min(dp[j],dp[j-i*i]+1);}}}return dp[n];}
};

遇到的问题:

对于遍历顺序都可以的理解

139. 单词拆分

思路:

1.确定dp数组以及下标的含义:

dp[ i ] 表示当前拆解的字符串可以由物品(字符串)组成

2.确定递推公式:

if(dp[j] && find(wordDict.begin(),wordDict.end(), str) !=wordDict.end())
                {
                    dp[i] = true;
                }

递推公式是一个判断式

3.dp数组的初始化:

dp [ 0 ]要初始化为true否则后面都无法推出true

4.确定遍历顺序

类排列问题:先背包,后物品。

代码:

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {vector<bool> dp(s.size()+1,false);//dp数组的初始化dp[0] = true;//类排列问题for(int i =1;i<=s.size();i++)//先背包{for(int j = 0;j < i;j++)//再物品{string str =  s.substr(j,i-j);if(dp[j] && find(wordDict.begin(),wordDict.end(), str) !=wordDict.end()){dp[i] = true;}}}return dp[s.size()];}
};

遇到的问题:

对于推导过程的理解不到位

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

相关文章:

  • 中山金舜家庭用品有限公司怎样网站地图网络推广有哪些常见的推广方法
  • 新疆网站新疆网页设计建设百度长尾关键词挖掘工具
  • 做网上任务赚钱的网站中国最新领导班子
  • md风格的wordpress主题seo培训机构哪家好
  • 广州招投标交易中心整站优化seo
  • 做系统用哪个网站好网络推广包括哪些
  • 开商城网站多少钱百度指数排名热搜榜
  • 免费网站大全黄页动漫上海疫情又要爆发了
  • 泰安手机网站百度的搜索引擎优化
  • 郑州网站建站网站怎么样整合营销是什么
  • 南阳网站建设域名公司seo是什么岗位简称
  • 网站开发论文的研究目的与意义什么是优化师
  • 牙膏的网站建设想做网络推广的公司
  • 青岛建网站怎样能在百度上搜索到自己的店铺
  • 岳阳市委网站sem工具是什么
  • 公司网站建设招标文件范本seo优化快速排名
  • 网站建设系统服务机构google浏览器下载
  • 邢台网站制作那家便宜网站发布流程
  • 网站建设管理是网络推广外包注意哪些
  • 网站开发包括搜索引擎营销就是seo
  • java网站开发环境百度网盘app下载安装电脑版
  • 做红酒的网站有哪些湖南seo推广软件
  • 网站建设一般涉及后台功能杭州明开seo
  • 网站建设与维护视频教程网络广告推广公司
  • 网站服务器和空间的区别杭州seo网络推广
  • 鹿泉营销型网站制作价格低郑州百度快照优化排名
  • 如何做免费企业网站怎么做app推广代理
  • 秋实网站建设推广软文范例
  • wordpress封采集站ip网站快速排名优化报价
  • 专业做网站优化需要多久安卓优化大师app