首页 > 编程语言 >【数据结构和算法面试题】跳台阶问题

【数据结构和算法面试题】跳台阶问题

时间:2023-06-14 20:37:47浏览次数:57  
标签:面试题 台阶 int 算法 有种 数据结构


题目来源“数据结构与算法面试题80道”。

【数据结构和算法面试题】跳台阶问题_问题分析

问题分析:假设【数据结构和算法面试题】跳台阶问题_问题分析_02为跳台阶的总跳法,当【数据结构和算法面试题】跳台阶问题_数据结构_03时,【数据结构和算法面试题】跳台阶问题_算法_04;当【数据结构和算法面试题】跳台阶问题_问题分析_05时,【数据结构和算法面试题】跳台阶问题_算法_06;当【数据结构和算法面试题】跳台阶问题_问题分析_07时,如果先跳1级台阶,有【数据结构和算法面试题】跳台阶问题_跳台阶_08种方法,如果先跳2级台阶,有【数据结构和算法面试题】跳台阶问题_跳台阶_09种方法,依次类推,可以得到下面的递推公式:

【数据结构和算法面试题】跳台阶问题_数据结构_10

方法:

int get_kind(int n){
	if (n <= 0) return 0;
	
	int result;
	int *cal = (int *)malloc(sizeof(int) * n);
	for (int i = 0; i < n; i++){
		if ((i + 1) == 1) cal[i] = 1;
		else if ((i + 1) == 2) cal[i] = 2;
		else {
			cal[i] = cal[i-1] + cal[i-2];
		}
	}
	result = cal[n-1];
	free(cal);
	return result;
}

时间复杂度为O(n)。


标签:面试题,台阶,int,算法,有种,数据结构
From: https://blog.51cto.com/u_16161414/6480395

相关文章

  • 挑战数据结构和算法——整数的二进制表示中1的个数
    题目来源“数据结构与算法面试题80道”。在此给出我的解法,如你有更好的解法,欢迎留言。问题分析:本题涉及到二进制的处理,在本题使用到&操作和>>操作。方法:intget_num(intn){intnum=0;if(n<0){num+=1;n=n*(-1);}while(n!=0){......
  • 推荐系统中的常用算法——Wide & Deep
    1.概述在前DeepLearning时代,以LogisticRegression(LR)为代表的广义线性模型在CTR,CVR中得到了广泛的应用,主要原因包括:模型足够简单,相当于不包括隐含层的神经网络;可扩展性强;可解释性强,因为是线性的模型,可以很方便的显现出特征对最终结果的强弱。虽然线性模型有如上的优点,但同时也存在......
  • 【数据结构与算法面试题】二叉树节点的最大距离
    题目来源“数据结构与算法面试题80道”。问题分析:涉及的知识点是二叉树的遍历,遍历的方法主要有:先序遍历中序遍历后序遍历层次遍历在本题中,使用先序遍历的方法。方法:voidm_length(BSTreeNode*root,int*length,int*max_length){if(NULL==root||(NULL==root......
  • 机器学习算法实现解析——libFM之libFM的训练过程之Adaptive Regularization
    本节主要介绍的是libFM源码分析的第五部分之二——libFM的训练过程之AdaptiveRegularization的方法。5.3、AdaptiveRegularization的训练方法5.3.1、SGD的优劣在“机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法”中已经介绍了基于SGD的FM模型的训练方法,SGD的方法的......
  • 推荐算法——非负矩阵分解(NMF)
    1.矩阵分解回顾在博文推荐算法——基于矩阵分解的推荐算法中,提到了将用户-商品矩阵进行分解,从而实现对未打分项进行打分。矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积。对于上述的用户-商品矩阵(评分矩阵),记为,可以将其分解成两个或者多个矩阵的乘积,假设分解成两个矩阵和,......
  • 机器学习中的常见问题——K-Means算法与矩阵分解的等价
    一、K-Means算法的基本原理K-Means算法是较为经典的聚类算法,假设训练数据集XX为:{x1,x2,⋯,xn}{x1,x2,⋯,xn},其中,每一个样本xjxj为m......
  • 优化算法——坐标上升法
    一、坐标上升法算法原理坐标上升法(CoordinateAscent)每次通过更新函数中的一维,通过多次的迭代以达到优化函数的目的。假设需要求解的优化问题的具体形式如下:其中,是向量的函数。更新过程为每次固定除以外的参数,求得满足条件的,直到算法收敛,具体的算法过程如下所示:(图片来自参考文......
  • 数据结构和算法——旋转打印链表
    1、问题描述输入参数nn为正整数,如输入n=5n=5,则按行打印如下的数字:2、问题的理解这个问题是将数字1…n21…n2按照一圈一圈的方式......
  • python基础知识——内置数据结构(字典)
      字典是有“键-值”对组成的集合,字典中的“值”通过“键”来引用。“键-值”对之间用逗号隔开,并且被包含在一对花括号中。1、字典的创建格式dictionary_name={key1:value1,key2:value2,...}创建空的字典dictionary_name={}例如dict={'b':'beijing','s':......
  • Pasos和RAFT算法
    Paxos提出时间1990年,RAFT提出时间2013年。RAFT是Paxos的简化版,或者说是提高投票效率,但是降低了投票公平性的妥协方案。RAFT分布式raft(ReplicatedAndFaultTolerant)选举算法原理分成三个角色,领导者,跟随者,和候选者。在没有领导者的时候和领导者联系不上的时候。跟随者......