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

网站设计原则的历史深圳推广不动产可视化查询

网站设计原则的历史,深圳推广不动产可视化查询,高端品牌护肤品排行榜,网站制作费可以做业务宣传费理论基础 动态规划:dp,每一个状态都是由上个状态推导出来的,因为我是先写完三道题再看理论的,所以有点感概; 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举…

理论基础

动态规划:dp,每一个状态都是由上个状态推导出来的,因为我是先写完三道题再看理论的,所以有点感概;

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

509. 斐波那契数

509. 斐波那契数icon-default.png?t=O83Ahttps://leetcode.cn/problems/fibonacci-number/

1.因为是n是动态的,所以需要用malloc来分配内存,因为后面会对dp赋值,所以初始化的代码我注释了

2.因为求n,但下标0是从开始的,所以需要n+1

3.这里也可以用递归写,但是复杂度有点2的n次方,我就不记录了

4.我还记录了只需要用2个变量来存储结果的写法,这样就不需要用数组了

动归五部曲

1.确定dp数组以及下标的含义:dp[i]表示第i个斐波那契数

2.确定递推公式:dp[i] = dp[i-1] + dp[i-2]

3.dp数组如何初始化:dp[0] = 0, dp[1] = 1

4.确定遍历顺序:从前往后遍历

5.举例推导 a = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] ,这里n=10,但是a[10]是第11个斐波那契数,所以需要n+1

int fib(int n) {if (n <= 1) {return n;}n = n + 1;int *dp = (int*)malloc(sizeof(int) * n);// for (int i = 0; i < n; i++) {//     dp[i] = 0;// }dp[0] = 0;dp[1] = 1;for (int i = 2; i < n; i++) {dp[i] = dp[i-1] + dp[i-2];}return dp[n-1];
}//这里也可以用递归写,但是复杂度有点2的n次方,我就不记录了 
int fib(int n) {if (n <= 1) {return n;}int fir = 0;int sec = 1;int tmp = 0;for (int i = 2; i <= n ; i++) {tmp = fir + sec;fir = sec;sec = tmp;}return sec;
}

70. 爬楼梯

70. 爬楼梯icon-default.png?t=O83Ahttps://leetcode.cn/problems/climbing-stairs/MD,写在vscode上的东西丢了,我还得再写一次

1.这里和上一题一样,代码也差不多,除了初始化,其他代码都可以复用了。

动归五部曲

1.确定dp数组以及下标的含义:dp[i]表示第i个斐波那契数

2.确定递推公式:dp[i] = dp[i-1] + dp[i-2]

3.dp数组如何初始化:dp[1] = 1, dp[2] = 2, 这里dp[0]没有意义,但是为了统一,我还是初始化为0

4.确定遍历顺序:从前往后遍历

5.举例推导如下:

1:1

2:1, 2

3:1+1+1,2+1,1+2

4:1+1+1+1,2+1+1,1+2+1,1+1+2,2+2

这里4是第3层再加1和第2层再加2,所以4是第3层和第2层的和,所以dp[4] = dp[3] + dp[2]

int climbStairs(int n) {if (n <= 3) {return n;}n = n + 1;int *dp = (int *)malloc(sizeof(int) * n);dp[0] = 0;dp[1] = 1;dp[2] = 2;for (int i = 3; i < n; i++) {dp[i] = dp[i-2] + dp[i-1];}return dp[n-1];
}int climbStairs(int n) {if (n <= 2) {return n;}int pre = 1;int cur = 2;int tmp = 0;for (int i = 3; i <= n; i++) {tmp = pre + cur;pre = cur;cur  = tmp;}return cur;
}

746. 使用最小花费爬楼梯

746. 使用最小花费爬楼梯icon-default.png?t=O83Ahttps://leetcode.cn/problems/min-cost-climbing-stairs/1.这一题虽然说简单,但是还真不太容易想到

动归五部曲

1.确定dp数组以及下标的含义:dp[i]表示踏上该楼梯的最小花费(不包括当前楼梯的花费)

2.确定递推公式:dp[i] = min((dp[i-1] + cost[i]), (dp[i-2] + cost[i]));

3.dp数组如何初始化:dp[0] = cost[0], dp[1] = cost[1],这里就不是简单的直接加了,而且后续因为长度只有costSize,和题目要求的顶部还差一点,所以需要再求一次

4.确定遍历顺序:从前往后遍历

5.举例推导:无

#define min(a, b) (((a) < (b)) ? (a) :(b))
int minCostClimbingStairs(int* cost, int costSize) {int *dp = (int *)malloc(sizeof(int) * costSize);dp[0] = cost[0];dp[1] = cost[1];for (int i = 2; i < costSize; i++) {dp[i] = min((dp[i-1] + cost[i]), (dp[i-2] + cost[i]));}int res = min(dp[costSize-2], dp[costSize-1]);return res;
}

http://www.tj-hxxt.cn/news/69947.html

相关文章:

  • 济南网站建设咨询电话百度统计手机app
  • vps 做黄色网站网络销售有哪些
  • 网站需求清单竞价是什么工作
  • 河南做网站的公司seo关键词排名优化推荐
  • 网站后台下载器百度一下官网首页登录
  • 重庆网站建设cqsday如何建立网上销售平台
  • 福建省建设质量安全协会网站网店营销与推广策划方案
  • 网站必须做诚信认证吗佛山网页搜索排名提升
  • 政务网站建设百度推广公司电话
  • 网站 做购物车排名网
  • 怎么做网站模块杭州网站优化多少钱
  • 岳阳做网站seo网站
  • 做兼职哪个网站靠谱营销软文范例大全300
  • 关于做女装的网站外贸新手怎样用谷歌找客户
  • 网络平台推广运营培训新河seo怎么做整站排名
  • 中山 网站制作品牌广告策划方案
  • 深圳福田区住房和建设局官方网站在线html5制作网站
  • 4米高挡土墙模板加固sem优化技巧
  • 乐清建设路小学校园网站seo优化检测
  • 网站设计稿尺寸百度推广seo自学
  • 珠海建设工程造价监管网站东莞企业推广网站制作
  • python 登录wordpressseo排名优化收费
  • 看网站是不是WP做的天猫代运营
  • 余江网站建设今日新闻最新头条10条
  • 益阳建站网站制作临沂网站建设公司哪家好
  • wordpress登录于未登录菜单快手seo软件下载
  • 电商网站开发报告seo技术是什么意思
  • 什么网站需要icp备案seo网站运营
  • 专做国外采购的网站个人免费建站系统
  • 物联网设计论文关键词推广优化app