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

如何一键打开多个wordpress苏州seo优化公司

如何一键打开多个wordpress,苏州seo优化公司,深圳专业网络营销外包公司,wordpress程序简化创作不易,感谢三连支持 ! 斐波那契数列用于一维探索的单峰函数之中,用于求解最优值的方法。其主要优势为,在第一次迭代的时候求解两个函数值,之后每次迭代只需求解一次 。 一、第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.hkea.cn/news/418266/

相关文章:

  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo
  • 如何制作私人网站福州专业的seo软件
  • 做网站主流技术南宁在哪里推广网站
  • 老板让我做网站负责人微博营销软件
  • 教我做网站百度打开
  • 网站开发时如何兼容电商运营是做什么的
  • 河北建设银行石家庄分行招聘网站怎么申请自己的网络平台
  • vs2008 做网站搜索引擎的工作原理是什么
  • 东莞常平做网站公司app营销策划方案
  • 爱用建站 小程序重庆网站制作公司
  • 网站建设小企业案例漯河网络推广哪家好
  • wordpress 清空回收站合肥网站优化软件
  • 电站建设招聘网站智推教育seo课程
  • 做静态网站选用什么服务器站长素材网站
  • 网站建设先做前台还是后台百度认证是什么
  • 广州专业做crm系统的供应商seo网站培训班
  • 景安建网站企业网站seo方案案例