剑指offer python 实现
Python大视觉
这个作者很懒,什么都没留下…
展开
-
剑指offer之07:斐波那契数列
题目:实现斐波拉契数列题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。思路分析:斐波拉契数列是这样一种数列,第一项为0,第二项为1,这个数列从第三项开始,每一项为前两项之和,比如说 ,[0,1,1,2,3,5,8,13,21,34,55,,,], 这个数列的特点在于第一项为0,第二项为1,之后每一项为前两项之和。具体实现有两种方法。 (1)非递归法,当数列的长度 n=1时,f(1)=0 , n=2时,f(2)=1,n>3时,f..原创 2021-11-10 21:37:20 · 250 阅读 · 0 评论 -
剑指offer之05:旋转数组的最小数字
题目:旋转数组中的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路分析:找出数组中的最小值并返回,从前向后遍历数组,找到最小值,并返回。代码实现: # -*- coding: utf-8 -*-""" @Time : 2021/9/1 1原创 2021-11-10 21:35:52 · 70 阅读 · 0 评论 -
剑指offer之04:两个栈实现一个队列
欢迎关注公众号:题目:两个栈实现队列题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。思路分析:在数据结构中,栈和队列都是线性表,栈的结构类似于子殚夹,数据先进后出,栈结构如下图所示,队列的结构类似于排队,先进先出。队列结构如下图所示。我们已经知道了栈和队列的结构,那么,怎么样来实现用两个栈来实现队列呢? 因为栈是后进先出的数据结构,当将数据依次压入第一个栈后,再依次从这个栈弹出,压入第二个栈,如果此时从第二个栈.原创 2021-11-10 21:33:55 · 554 阅读 · 0 评论 -
剑指offer之03:从尾到头打印链表arrayList
题目:从尾到头打印链表arrayList题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路分析: (1)链表简介:链表是这样一种数据结构,它是线性表,表示逻辑有序,即即数据之间的顺序关系是由某种逻辑关系(如指针)来决定的,其结构如下图所示,每一个节点包括有当前节点的数值和下一个节点的地址。(后面我们在数据结构和算法中详细介绍链表)(2)逻辑分析:在上面的描述中我们知道链表的基本结构,那么,如何实现链表的反转呢?目前有两种思路 <1>链表...原创 2021-11-10 21:29:20 · 414 阅读 · 0 评论 -
剑指offer之02:替换空格
题目:替换空格题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路分析:给定一个字符串,将其空格替换为特定字符,有两个方法,一种是利用字符串中的函数replace,直接替换字符串的空格为特定字符;另一种方法是从前向后遍历字符串,判断是否为空格,是的话,替换为特定字符,然后输出替换好后的字符即可。实现代码如下:# -*- coding: utf-8 -*-""" @Ti原创 2021-11-10 21:19:57 · 861 阅读 · 0 评论 -
剑指offer之01:二维数组的查找
欢迎关注公众号:python大视界 一起进步,共同成长题目:二维数组的查找问题描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:题目要求查询数组中是否含有某个数,这个数组的特点在于每行每列都是递增的,有两个方法来解决这个问题。方法一:既知是二维数组,获得二维数组的行数和列数,然后逐次遍历数组,若这个数存在,则返回true,否则为f.原创 2021-11-10 21:17:00 · 736 阅读 · 0 评论