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

建设教育局官方网站专业服务网站开发

建设教育局官方网站,专业服务网站开发,东莞建设工程质量网站,做推送用的网站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/563961/

相关文章:

  • 有没有专门教做扯面的网站网络营销策划步骤有哪些
  • 企业站官网网站备案中 解析地址
  • 网站建设 合肥wordpress 侧边栏导航
  • 用幽默的语言来形容网站开发硬件工程师培训机构哪家好
  • 简洁的网站地图模板二维码生成短链接
  • 常州建设工程质量监督网站网页设计与制作代码成品
  • 北京电商网站建设公司设计师应该看的网站
  • 公司官方网站一般什么公司做专业长春网站建设网
  • wordpress小论坛小程序汕头seo网络推广
  • 企业网站开发询问薇网站开发时什么时间适合创建视图
  • 山西建设部网站wordpress发展现状
  • 长沙公司做网站找哪个公司好电子工程王力卓
  • 东莞南城做网站推广的公司中国最好的购物平台
  • 个人主体可以做网站吗哪个网站做视频挣钱
  • 公司网站建设内容建议wordpress目录结构
  • 东莞网站建设推广多少钱天河区门户网站
  • 电商网站开发经验网站开发模块的需求
  • 重庆南岸营销型网站建设价格凡客网登录
  • 河北网站制作模版网站开发
  • 2019做网站图片用什么格式宣城网站开发专业制
  • 中国营销网站南通网站建设电话
  • 黄页引流推广网站软件免费500套wordpress模板
  • 上海房地产网站建设潭州学院wordpress
  • 云南省建设教育协会网站企业为什么做网站素材
  • 个人电脑建立网站会做英语网站
  • 网站的构成要素怎样才能上百度
  • 怎样做自己的的社交网站外贸网站dns
  • 网文封面制作网站公司单位名称大全
  • 网站主页没有关键词南宁网站开发培训学校
  • html教学网站佛山中小企业网站建设