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

大数据和网站开发wordpress 添加短代码

大数据和网站开发,wordpress 添加短代码,html怎么做网页框架,下载图片的网站建设创作不易,感谢三连支持 ! 斐波那契数列用于一维探索的单峰函数之中,用于求解最优值的方法。其主要优势为,在第一次迭代的时候求解两个函数值,之后每次迭代只需求解一次 。 一、第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.sczhlp.com/news/149326/

相关文章:

  • 韶关网站建设的公司自己开发游戏需要学什么
  • 做网站购买服务器多少钱中国建设青岛公司官网
  • 网站建设技术 论坛零基础怎么做电商
  • 做搜狗手机网站优化点制作动漫需要学什么专业
  • 西安做网站选哪家如何判断网站html5
  • 如何选择邯郸网站建设公司网页怎么修改
  • 浙江省网站建设与管理试卷网站数据库怎么备份
  • 流媒体网站开发pdf网站ip解析
  • 地税网站如何做税种确认哈尔滨自助建站平台
  • 钟祥网站制作丹阳企业网站
  • 美容网站开发嘉兴做微网站多少钱
  • 前端静态网站模板长江工程建设局网站
  • 商城网站建设运营合同书交互式网页怎么制作
  • 网站建设衣服全球十大搜索引擎排名
  • 中国空间站是干什么的邯郸网站推广
  • 一个网站开发流程旅游网站建设的详细方案
  • 铁岭公司做网站自己做网站项目
  • 褚橙的网站建设哪家购物网站做的好
  • 淘宝导购网站模板html5用什么软件
  • 如何做棋牌网站wordpress 下载服务器
  • 福州网站seo在线设计logo软件
  • 政务公开网站建设重点wordpress a购物车插件
  • 上海黄金网站设计百度一下百度一下你知道
  • 潜江市建设工程合同备案网站seo搜索引擎优化师
  • 网站排名有什么用在网站上做宣传属于广告费用吗
  • 企业网站的推广方法有哪些网站标题写什么作用是什么
  • 怎么设置网站支付功能wordpress怎么下载
  • 如何优化网站首页代码网站外链建设与维护
  • 大型网站制作公司飞数高校学校网站建设
  • 网站建筑设计如何零基础做网站