leetcode70: Climbing Stairs

2023-12-26 08:48
文章标签 leetcode70 climbing stairs

本文主要是介绍leetcode70: Climbing Stairs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要求:

You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

注意:基本动态规划问题,只要写出状态转移方程就可以了。当到了第i个阶梯时,它之前的状态只有两种:i-1或i-2。f(i)表示到第i个阶梯的方法总数,那么有:f(i) = f(i-1) + f(i-2),因此,只要用一个数组来保存每次的状态就可以了(也可以用两个变量保存,空间复杂度低)

	public int climbStairs(int n) {if (n <= 1)return 1;int[] k = new int[n + 1];k[1] = 1;k[2] = 2;for (int i = 3; i <= n; i++) {k[i] = k[i - 1] + k[i - 2];}return k[n];}


这篇关于leetcode70: Climbing Stairs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538770

相关文章

leetcode#70. Climbing Stairs

题目 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? Note: Given n will be a posi

【九度】题目1388:跳台阶 【LeetCode】Climbing Stairs

1、【九度】题目1388:跳台阶 时间限制:1 秒内存限制:32 兆特殊判题:否提交:2435解决:995 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1<=n<=70)。 输出: 对应每个测试案例, 输出该青蛙跳上一个n级的台

codeforces--2014/1/13--B. Sereja and Stairs

B. Sereja and Stairs time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Sereja loves integer sequences very much. He espec

爬山算法(Hill Climbing Algorithm)详细介绍

爬山算法(Hill Climbing Algorithm)详细介绍 1. 概述 爬山算法(Hill Climbing Algorithm)是一种基于启发式的搜索算法,广泛应用于人工智能、运筹学和优化问题。该算法以当前状态为起点,不断选择邻域中能够提升目标函数值的状态,并逐步朝着目标前进,直到达到局部最优解。 2. 算法原理 爬山算法的核心思想是“贪心策略”(Greedy Strategy)

hdu-1049-Climbing Worm

#include<stdio.h> int  main() { int a,b,c,i,sum; while(scanf("%d%d%d",&a,&b,&c)&&a) { sum=0; for(i=0;;i++) { if(sum>=a) break; if(i%2==0) sum+=b; else  sum-=c;

LeetCode70-爬楼梯

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

Mountain climbing

Problem Description 又这是一个关于登山的问题。现有n座山位于一条直线上,每座山可以看成一条垂直于地面的线段,一端点在地面上, 这些山编号从左往右为1到n,第i座山位于xi高为hi。 对于任意的两座山a和b,如果a的顶端能看见b的顶端,则他们可以用绳索连接。a能看见b,当且仅当他们顶端的连线 不能穿过其他山或者触摸到其他山。若a与b能用绳索连接那么登山者可以用一个单位的时间

【LeetCode】70. Climbing Stairs【牛客网】变态跳台阶

今天在LeetCode做到一个动态规划的题,之前在牛客网做过一道“变态跳台阶”的题,猛一看还以为是一个意思,牛客网那边能AC,LeetCode这边却不能AC,很奇怪,其实题目有细微的差别, 这两题难道不是一个意思吗? 1、跳台阶 题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种方法? 与LeetCode Problem No.70 Cl

LeetCode之旅(16)-Climbing Stairs

题目描述: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 先验知识: 斐波那契数列 斐波那契数列(Fib

LeetCode70:爬楼梯

题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 解题思想 1.确定dp数组以及下标的含义 dp[i]: 爬到第i层楼梯,有dp[i]种方法 2.确定递推公式 从dp[i]的定义可以看出,dp[i] 可以有两个方向推出来。 首先是dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个