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

一、写在前面

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

二、题目解析

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)如果该列表单调,则有两种可能,要么排列后和原列表相等,要么列表倒置后与其相等。
很巧的一个方法!

三、写在后面

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MUSE_X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值