程序员面试金典——9.1上楼梯

LeetCode《程序员面试金典》面试题 08.01. 三步问题 LeetCode 面试题 08.01. 三步问题题目解题解题一:自上而下递归+制表法解题二:自下而上解题三:矩阵快速幂 题目 题目中给了两个提示:一是取模,二是 n 的范围。 解题 解题一:自上而下递归+制表法 前一个算法,对同一数值,countWays 会调用多次,而这显然是无用功。我们可以利用制表法加以修正。具体做法是,如果计算过 nnn 的值,再次遇到 nnn 就返回缓存值。每次计算一个新值,就把它添加到缓存中。 // javascript var waysToStep = function( 阅读详情

程序员面试金典——9.1上楼梯

Solution1:我的破答案,复杂度太高未能AC
递归的毛病就是复杂度太高!!!

class GoUpstairs {
public:
    int countWays(int n) { //hin典型的递归啊~
        // write code here
        return my_count(n);
    }

    int my_count(int n) {
        if(n == 1)
            return 1;
        else if(n == 2)
            return 2;
        else if(n == 3)
            return 4;
        else 
            return (my_count(n - 1) + 
                    my_count(n - 2) +
                    my_count(n - 3))%
                    1000000007;
    }
};

Solution2:真没想到这种上楼梯的题目还能用动态规划来做~~~
参考网址:https://www.nowcoder.com/profile/332470/codeBookDetail?submissionId=12674248
牛逼啊,真牛逼!!!
菜鸟同志!继续努力!

class GoUpstairs {
public:
    int countWays(int n) {

        int a[100000];
        a[1] = 1;
        a[2] = 2;
        a[3] = 4;
        for(int i=4;i<=n;i++)
            a[i] = (a[i-1]+(a[i-2]+a[i-3])%1000000007) % 1000000007;
        return a[n];
    }
};
华为手撕代码c语言题目,想去面试?这10道最高频的手撕代码题都会了吗? 原标题:想去面试?这10道最高频的手撕代码题都会了吗?来源:Python与算法之美ID:Python_Ai_Road作者:梁云1991想去看机会?下面这10道最高频的手撕代码面试题都会了吗?相信我,彻底掌握以下这10道题的解法,你顺利做出手撕代码面试题目的概率至少不低于50%。1,快速排序题目形式:手写一下快速排序算法。题目难度:中等。出现概率:约50%。手写快排绝对是手撕代码面试题中的百兽之王,... 阅读详情

相关推荐

java面试题及答案2020 大汇总

java面试题及答案2020 java面试题大汇总 百度第一篇 java面试题及答案2020 先点赞后收藏,以后更新及时看 文末后续更新答案,持续更新 一面 2018/9/11 来自于牛客网 1、手写ArrayList 2、手写进制转换算法,求出一个数的二进制数 1 的个数 3、JAVA 基础,equals 和== 4、多线程方式、threadlocal,各种锁,synchronized 和 lock 5、设计模式、spring 类加载方式、实例保存在哪、aop ioc、反射机制6、类加载器,双亲委派模

月已满西楼的博客 2万+

阅读:《程序员面试金典(第6版)》

《程序员面试金典(第6版)》面试流程面试揭秘特殊情况面试之前行为面试题大O技术面试题录用通知及其他注意事项面试题目题目解法进阶话题附录A-代码库附录B-提示 面试流程 介绍面试的一般流程及原因 面试揭秘 介绍了几个大互联网公司的面试流程及重点 特殊情况 针对不同读者的不同阅读建议 面试之前 如何写简历:篇幅精要、工作经历要深刻突出、项目经验要简明扼要 行为面试题 遇见过的挑战 遭遇过的滑铁卢 最享受什么 如何体现领导力 如何处理冲突 有哪些改进之处 有哪些缺点 你想问我什么 自我介绍 大O 细看 技术面试题

赵大土的博客 1104

java面试题及答案2020 持续更新中..

java面试题及答案2020 阿里面试 2020java面试题及答案之阿里一面 1、自我介绍 2、TCP如何保证可靠传输 3、数据中心网络下TCP的缺陷不足 4、Http2.0和http的区别,2.0多了什么 5、进程线程区别 6、jvm相关,内存模型,垃圾回收,运行时常量池具体讲一下,final static存在哪里 7、B树、B+树 (数据结构) 8、nio讲一下,selector和epoll的区别 2020java面试题及答案之阿里二面 1、Java中,char型变量能不能存储一个汉字 2、不加任何修

bookanddream的博客 2万+

程序员面试金典(第 6 版)(简单篇)

程序员面试金典(第 6 版)(简单篇)

qq_39493185的博客 1946

剑指Offer与程序员面试算法实战项目(Python&C++双语实现)

下次当你坐在面试官对面,手握鼠标准备打开 IDE 时,请记住:你写的不是代码,是你对世界的理解方式。你调的不是参数,是你多年沉淀的工程直觉。你争的不是 Offer,是成为更好自己的机会。

weixin_28840811的博客 592

程序员面试金典第六版,英文版

程序员面试金典第六版,最新英文版,面试刷题必备读物。

c语言爬楼梯递归程序,递归法——爬楼梯(简单)

题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1...

weixin_42226116的博客 5342

程序员面试金典第6版(英)

Cracking the Coding Interview(6th)带目录高清版 程序员面试金典

爬楼梯(程序)

假设你现在正在爬楼梯,楼梯有n级。每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部?格式:   第一行输入一个数n(n   接下来一行输出你的方法总数。样例输入5 样例输出 8 #include int i = 0; int climb(int a,int b,int c) { if(a+c<b) { climb(a+c,b,1); climb(

ryan_jianjian的博客 1355

Ubuntu操作系统等保测评指南

Ubuntu操作系统等保测评指南

qq_40181198的博客 7025

Wireshark实战解析IEC 61850 GOOSE报文:智能变电站通信调试指南

网络协议分析是理解现代工业通信系统的基础,其核心原理在于对数据包的捕获、解码与解析。在电力自动化领域,IEC 61850标准定义了智能变电站内设备间高效、可靠的通信框架,其中GOOSE(通用面向对象变电站事件)协议因其基于以太网多播和快速重传机制,成为保护跳闸、联锁等关键信号传输的基石,其技术价值在于实现了微秒级延迟的高可靠性通信。掌握GOOSE报文的分析能力,对于现场调试、故障定位及系统验证至关重要。本文聚焦于使用Wireshark这一网络分析工具,深入解析GOOSE报文结构,涵盖从以太网帧头、协议标识到

weixin_34401479的博客 374

刷题程序员面试金典第9章

目录 1、上楼梯 2、机器人走方格I 3、机器人走方格II 4、魔术索引 II 1、上楼梯 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007 给定一个正整数intn,请返回一个数,代表上楼的方式数。保证n小于等于100000。 测试样例1: 1 返回:1...

ymszzu的博客 259

flowable表中文注释-表结构-主要表结构字段注释-sql脚本

flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。

bushinakeshu的博客 1069

【LeetCode 程序员面试金典(第 6 版)】第八章题目 08.01-08.05

本系列往期文章如下: 【LeetCode 程序员面试金典(第 6 版)】第1-4章题目 01.01 ~ 04.10_lzs_lazy-优快云博客 【LeetCode 程序员面试金典(第 6 版)】第五章题目 05.01 ~ 05.08_lzs_lazy-优快云博客 面试题 08.01. 三步问题 - 力扣(LeetCode) (leetcode-cn.com) 三步问题。有个小孩正在上楼梯,楼梯有 n 阶台阶,小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果.

lzs_lazy 716

RK3568平台(USB篇)USB基础知识

现象:把USB设备比如Android手机接到PC答1:是USB控制器,是USB控制器内嵌的root hub.答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"提示你安装的是"设备驱动程序"。USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;

weixin_49303682的博客 1658

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7622

程序员面试金典: 9.9 递归和动态规划 9.1上楼的方式

#include #include using namespace std; /* 问题:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶,2阶或3阶。实现一个方法,计算小孩有多少种上楼梯的方式。 分析: 设f(n)表示n层台阶共有的上台阶的方式,那么它可能是由前面n-1层台阶上台阶方式+最后一次选择上一个台阶组成,

qingyuanluofeng的专栏 473

超临界二氧化碳再热再压缩布雷顿循环建模与先进控制

超临界二氧化碳布雷顿循环建模与先进控制研究 本文研究了超临界二氧化碳再热再压缩布雷顿循环系统的建模与控制。通过MATLAB/Simscape构建了包含压缩机、透平、回热器等关键组件的动态模型,并设计了基于模型预测控制(MPC)和自抗扰控制(ADRC)的多层控制策略。系统采用转速控制的压缩机、阀门开度控制的透平,以及可变热源加热器,实现了全动态分析。研究结果表明,MPC与ADRC混合控制方案相较于传统PID控制,功率超调降低至0.9%,效率波动控制在±0.08%,扰动恢复时间缩短至12秒。

AI的内部世界的博客 340

程序员面试数学与智力题

这里的题目都是作者从小碰到的一些题目,基本上不是考算法的,而是考你的智力与基础的数学水平,希望对现在在求职的同学有所帮助,楼主会每天都更新几个题目进去,每一次都是加在后面。 1,一个楼梯有n层,小明一次能走一个或两个台阶,问总共有多少种走法 2,一个电梯有n层,现在走进来m波人,问电梯平均停几次 3,从[0,1]区间不断地取小数,问平均取多少个才能使取出的数的和大于1

科学家的世界 7956

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6128

ESD防护设计宝典(十一):CE(传导发射)超标问题排查与解决

(Conducted Emission, CE),亦称为传导骚扰,是电子电气设备或系统内部的电压、电流通过信号线、电源线或地线向外传输,对其他电子电气设备或系统造成电磁干扰的物理现象。其。

m0_56451176的博客 855

49. 算法-爬楼梯

48期问题及答案 旋转图像题目描述:给定一个 n x n 的二维矩阵表示一个图像,将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,不能直接使用另一个矩阵来旋转图像。示例 1:输入:[ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]输出:[ [7, 4, 1], [8, 5, 2], [9, 6, 3] ]示例 2:输入:[ [ 5, 1, 9...

debug 112

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

爬楼梯问题:从递归到动态规划再到闭包的进化之路

本文围绕经典爬楼梯问题,拆解从递归到动态规划再到闭包的优化之路。先分析问题本质与递归公式,指出纯递归重复计算、易爆栈的缺陷;再介绍数组和HashMap缓存的动态规划解法,以空间换时间提升效率;最后通过闭包优化全局缓存的递归方案,解决状态污染问题。还梳理面试官高频提问,展现编程思维的递进与优化逻辑。

2302_80706750的博客 665

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 程序员面试金典——7.7第k个数(丑数)
下一篇: 程序员面试金典——9.2机器人走方格
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值