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

揭阳建设局网站淘宝网站c#设计怎么做

揭阳建设局网站,淘宝网站c#设计怎么做,廊坊网站建设方案,wordpress商城 微信java面试题,上楼梯有多少种方式 题目:一个小孩上一个N级台阶的楼梯,他可以一次走1阶、2阶或3阶,那么走完N阶有多少种方式。 很自然的想法是使用递归: public class Test04 { public static int countWays(int n) {…

java面试题,上楼梯有多少种方式

题目:一个小孩上一个N级台阶的楼梯,他可以一次走1阶、2阶或3阶,那么走完N阶有多少种方式。

很自然的想法是使用递归:

public class Test04 {

public static int countWays(int n) {

if(n < 0) {

return 0;

}

else if(n == 0) {

return 1;

}

else {

return countWays(n - 1) + countWays(n - 2) + countWays(n - 3);

}

}

public static void main(String[] args) {

System.out.println(countWays(5)); // 13

// 11111, 1112, 1121, 1211, 122, 131, 113, 23, 221, 2111, 212, 32, 311

}

}

然而,这里的递归是一个头递归,也就是说要先递归再回溯(编译器无法将其优化为一个循环结构),而且是将三个递归的结果进行合并,这样的话算法的运行时间呈指数增长(渐近时间复杂度为O(3^N))。可以利用动态规划的思想对递归进行优化,其代码如下所示:

public class Test04 {

public static int countWaysDP(int n) {

int[] map = new int[n + 1];

for (int i = 0; i < map.length; i++) {

map[i] = -1;

}

return countWaysDP(n, map);

}

private static int countWaysDP(int n, int[] map) {

if (n < 0) {

return 0;

}

else if (n == 0) {

return 1;

}

else if (map[n] > -1) {

return map[n];

}

else {

map[n] = countWaysDP(n - 1, map) + countWaysDP(n - 2, map)

countWaysDP(n - 3, map);

return map[n];

}

}

public static void main(String[] args) {

System.out.println(countWaysDP(5)); // 13

// 11111, 1112, 1121, 1211, 122, 131, 113, 23, 221, 2111, 212, 32, 311

}

}
 

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

相关文章:

  • 怎么看网站用什么代码做的个人怎么创建微信公众号
  • 网站建设费用是多少钱网站后台英文
  • 泸州中泸建设集团有限公司网站怎么找到网站站长
  • wordpress 朴素泰州网站建设方案优化
  • 属于自己的网站app平台下载
  • 代做效果图的网站好快速搭建展示型网站
  • 搭建免费个人网站2022wordpress会员修改
  • 网站建设服务合同需要哪些资料wordpress文章和博客的区别
  • 郑州学校网站建设哈尔滨建设工程信息招标
  • 江苏省建设职业中心网站wordpress导出全站链接
  • 如何自己网站接装修生意做做网络推广哪家好
  • 一站式网站管家网站建设公司岗位
  • 网站建设中 目录是什么网站后台视频教程
  • 设计师素材网站e成都室内设计公司排名
  • 国家级示范建设网站网站关键词挖掘工具
  • 沧州网站建设选网龙wordpress企业仿站
  • 第一次和两个老头做网站标签式网站内容管理
  • 清远市住房和城乡建设局网站网站制作先学什么
  • 自适应网站开发公司新浪云计算 网站开发
  • 没有建设的网站不能申请微信支付吗seo网站建设优化
  • 建网站建设公司杭州网站建设宣盟网络
  • 百度行业网站怎么做为某一企业规划网络促销方案
  • 自学python的网站深圳外贸公司名录
  • 网站描述设置企业信息公示平台
  • 烟台招远网站建设视觉营销的网站设计
  • 湖南网站服务天津关键词优化平台
  • 南京秦淮区建设局网站长沙航科网页制作
  • 宝山php网站开发培训做淘宝客网站要多少钱
  • 常熟建设网站利用图床做网站
  • 三合一网站建设方案网站建设公司工资设置