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

营销型网站建设运营网站seo诊断分析报告

营销型网站建设运营,网站seo诊断分析报告,做一个公司网页要多少钱,建站本创作不易,感谢三连支持 ! 斐波那契数列用于一维探索的单峰函数之中,用于求解最优值的方法。其主要优势为,在第一次迭代的时候求解两个函数值,之后每次迭代只需求解一次 。 一、第N个泰波那契数 . - 力扣(…

                                                 创作不易,感谢三连支持 !

        斐波那契数列用于一维探索的单峰函数之中,用于求解最优值的方法。其主要优势为,在第一次迭代的时候求解两个函数值,之后每次迭代只需求解一次 。

一、第N个泰波那契数

. - 力扣(LeetCode)第N个泰波那契数

class Solution {
public:int tribonacci(int n) {//边界情况if(n==0||n==1) return n;if(n==2)  return 1;//建表vector<int> dp(n+1);dp[1]=dp[2]=1;//开始填表for(int i=3;i<=n;++i)  dp[i]=dp[i-1]+dp[i-2]+dp[i-3];return dp[n];}
};

时间复杂度O(N),空间复杂度为O(N)

是否还有可以优化的方法呢??那就是该题可以使用滚动数组! 

class Solution {
public:int tribonacci(int n) {//边界情况if(n==0||n==1) return n;if(n==2)  return 1;//滚动数组int a=0,b=1,c=1,d=0;//开始滚动for(int i=3;i<=n;++i)  {d=a+b+c;a=b;b=c;c=d;}return d;}
};

时间复杂度O(N),空间复杂度为O(1) 

二、三步问题

. - 力扣(LeetCode)三步问题

思路1:dp[i]表示从起点到达i位置一共有几种方法

class Solution {
public:int waysToStep(int n) {const int MOD=1e9+7;//边界情况if(n==1||n==2) return n;if(n==3) return 4;//建立dp表vector<int> dp(n+1);//初始化dp[1]=1,dp[2]=2,dp[3]=4;//填表for(int i=4;i<=n;++i)  dp[i]=((dp[i-1]+dp[i-2])%MOD+dp[i-3])%MOD;return dp[n];}
};

思路2:dp[i]表示从i位置到达终点一共有几种方法

class Solution {
public:int waysToStep(int n) {const int MOD=1e9+7;//边界情况if(n==1||n==2) return n;if(n==3) return 4;//建立dp表vector<int> dp(n);//初始化dp[n-1]=1,dp[n-2]=2,dp[n-3]=4;//填表for(int i=n-4;i>=0;--i)  dp[i]=((dp[i+1]+dp[i+2])%MOD+dp[i+3])%MOD;return dp[0];}
};

三、使用最小的花费爬楼梯

. - 力扣(LeetCode)使用最小的花费爬楼梯

方法1:dp[i]表示从起点到i台阶的最小花费

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n=cost.size();vector<int> dp(n+1);//开始填表for(int i=2;i<=n;++i) dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);return dp[n];}
};

思路2:我们也可以以i为起点,让dp[i]表示到楼顶的最小花费

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n=cost.size();//处理边界情况vector<int> dp(n);dp[n-1]=cost[n-1],dp[n-2]=cost[n-2];for(int i=n-3;i>=0;--i) dp[i]=cost[i]+min(dp[i+1],dp[i+2]);return min(dp[0],dp[1]);}
};

四、解码方法

. - 力扣(LeetCode)解码方法

class Solution {
public:int numDecodings(string s) {int n=s.size();vector<int> dp(n);if(s[0]!='0') ++dp[0];//处理边界情况if(n==1)  return dp[0];if(s[1]!='0'&&s[0]!='0') dp[1]++;int t=(s[0]-'0')*10+(s[1]-'0');if(10<=t&&t<=26) ++dp[1];//开始填表for(int i=2;i<n;++i) {if(s[i]!='0') dp[i]+=dp[i-1];int t=(s[i-1]-'0')*10+(s[i]-'0');if(10<=t&&t<=26) dp[i]+=dp[i-2];}return dp[n-1];}
};

       我们会发现dp[1]的初始化和填表里面的过程非常相似,所以我们可以用一个动态规划的小技巧——虚拟节点(专门用来处理边界问题)

class Solution {
public:int numDecodings(string s) {int n=s.size();vector<int> dp(n+1);dp[0]=1;if(s[0]!='0') ++dp[1];//开始填表for(int i=2;i<=n;++i) {if(s[i-1]!='0') dp[i]+=dp[i-1];int t=(s[i-2]-'0')*10+(s[i-1]-'0');if(10<=t&&t<=26) dp[i]+=dp[i-2];}return dp[n];}
};

 先暂时更新到这,后面有新的题目会持续更新

http://www.yayakq.cn/news/45836/

相关文章:

  • 游戏网站怎么做seo小企业网站建设怎样
  • 张裕网站建设的目标自己创建一个网站需要多少钱
  • 常平镇网站建设公司镇江大港
  • 个人网站服务器推荐创意设计海报
  • 做家乡网站代码电子商务网站建设需要做好哪些准备
  • 网站建设及代运营合同做门户网站
  • 网站建设自己做网站建设的销售怎么样
  • 手把手教你做网站视频全栈网站开发流程图
  • 网站不备案可以使用么吾爱源码网
  • 个人备案网站放什么资料安顺高端网站建设平台
  • 微信建一个网站智慧物流企业网站建设方案
  • 网站有了域名然后怎么做php第一季网站开发实例教程
  • 织梦装修设计网站模板让公司做网站要注意什么
  • 东莞网站营销公司网站建设中应注意的问题
  • 龙华企业网站建设seo免费资源大全
  • 重庆本地网站有哪些江苏建设人才网证书查询电子证书
  • ip网站架设微信小程序cms系统
  • 南京市住房建设网站个性化网站模板
  • 网站上线后做什么网站做标签页
  • 网站济南网站建设江西建设网官方网站
  • 网站界面结构wordpress的按装方法
  • 社区建站网站系统广州建设教育网站
  • 简诉网站建设的基本流程装潢设计是干嘛的
  • a站是啥t型布局网站实例
  • 有道搜索seo顾问公司
  • 网站开发员属于网站图片alt属性
  • 安阳做网站推广常平镇网站建设
  • 有些网站突然无法访问网站怎么做架构图
  • 免费建个网站wordpress php代码编辑器
  • 手机网站用什么做的html网上购物系统