【算法零基础100讲题解】第二讲数列——基于Python语言

2021/12/9 22:22:45

本文主要是介绍【算法零基础100讲题解】第二讲数列——基于Python语言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 一、写在前面
  • 二、题目解析
    • 509.斐波那契数
    • 1137.第N个泰波那契数
    • [剑指Offer 64.求1+2+...+n的和](https://leetcode-cn.com/problems/qiu-12n-lcof/)
    • 896.单调数列
  • 三、写在后面

一、写在前面

今天的内容还是一些涉及到数学知识的内容,包含了等差数列,等比数列以及斐波那契数列,尤其需要注意的是斐波那契数列问题,这是一个可变化并且会出现在任何一门语言里的题目。

二、题目解析

509.斐波那契数

在这里插入图片描述

class Solution:
	def fib(self,n:int)->int:
		if n<2:
			return n
		F=[0]*(n+1)
		F[0]=1
		F[1]=1
		for i in range(2,n+1):
			F[i]=F[i-1]+F[i-2]
		return F[i]

1)当n小于2时,返回n;
2)之后建立一个列表,对索引为0,1的元素赋初值;
3)做循环遍历,按照斐波那契数列的公式写出方法体。
当然这道题目也可以使用递归的方法求解,有基础的话可以思考一下!

1137.第N个泰波那契数

在这里插入图片描述

class Solution:
	def tribonacci(self,n:int)->int:
		t=[0,1,1]
		for i in range(3,n+1):
			t.append(t[i-3]+t[i-2]+t[i-1])
		return t[n]

这道题目与第一道有一些类似,不同的是对前三项进行了求和;
1)先建立一个列表,同时为前三项赋初值;
2)做循环,每次将前三项的和对应的值添加在列表末端;
3)根据n输出结果。

剑指Offer 64.求1+2+…+n的和

在这里插入图片描述

class Solution:
	def sumNums(self,n:int)->int:
		return int(n*(n+1)/2)

题目的本质就是等差数列求和,难点在于限制了我们对循环的使用;
1)直接返回等差数列求和公式,涉及到了数学知识在编程中的应用。

896.单调数列

在这里插入图片描述

class Solution:
	def isMonotonic(self,nums:List[int])->bool:
		nums_1=sorted(nums)
		if nums_1==nums or list(reversed(nums_1))==nums:
			return True
		return False

这道题目理解起来也是非常的容易,单调既有单调增又有单调减;
我的解法里面应用了Python的内置函数;
1)首先对给定的列表进行了排列;
2)如果该列表单调,则有两种可能,要么排列后和原列表相等,要么列表倒置后与其相等。
很巧的一个方法!

三、写在后面

今天也是一些基础题,题目有相似之处但又不完全一样,学完知识之后做几道类似的题目也是能够熟练掌握了!

对你有帮助的话,还请点赞,有更好的想法的话,也可以评论分享!



这篇关于【算法零基础100讲题解】第二讲数列——基于Python语言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程