栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

三、写在后面

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号