- 博客(60)
- 收藏
- 关注
转载 递归中使用记忆化解法,LeetCode509. 斐波那契数
斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)题目示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1
2020-06-27 18:49:54
422
原创 [Java数据结构][6]逆波兰表达式的Java代码实现
[Java数据结构][6]逆波兰表达式的Java代码实现逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasewicz)于1929年首先提出的一种表达式的表示方法 。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。如(3+4)×5-6,写作逆波兰表达式就是3 4 + 5 × 6规则1.从左至右扫描,将3 和4 压入堆栈;2.遇到+运算符,因此弹出4 和3(4 为栈顶元素,3 为次顶元素),计算出3+4
2020-06-25 14:28:12
410
原创 [Java数据结构][5]Java通过站实现简易计算器
[Java数据结构][5]Java通过站实现简易计算器原理讲解Java栈的实现通过扫描表达式文本在我们之前栈的基础上,创建数栈和符号栈,通过上图的讲解,完成简易的计算器(10以内的数字,且目前仅限±*/)新增的方法1.返回栈顶元素,用于之后不取出的比较 /* 返回当前栈顶的值,但不是真的pop */ public int peek() { return stack[top]; }2. 返回运算符的优先级,数字越大,优先级越高/*
2020-06-24 21:54:03
435
原创 [Java数据结构][4]栈的Java代码实现
[Java数据结构][4]栈的Java代码实现栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。下面来看代码定义一个栈/*定义一个类表示栈 */class ArrayStack { private int maxSize; //栈的大小 private int[]
2020-06-20 23:03:24
349
原创 [Java数据结构][3]单链表以及双向链表Java代码实现
单链表Java代码实现,以水浒英雄链表为例单链表 :元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。┌───┬───┐│data │next │└───┴───┘头结点不存放数据,但存放着下一个指针的地址,其他每个指针服从上面所示存储关系,最后一个指针指向null。定义一个英雄链表/** * 定义结点, 每个对象是一个结点 * */ class HeroNode { p
2020-06-18 20:03:16
380
原创 [Java数据结构][2]初级队列的、循环队列 Java代码实现
初级队列的Java代码实现队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。就像下图这样,例如打水的时候,第一个来的先打先走,后面的同学依次排队。接着,我们来列举代码中的方法。构造队列 private int maxSize; //数组最大容量 private int front; //队列头 private in
2020-06-14 21:41:50
260
1
原创 [Java数据结构][1] 稀疏数组的Java代码实现案例
来自尚硅谷Java数据结构的课程笔记当遇见一个数组中有许多默认的重复数字时候,如棋盘,地图,可以用稀疏数组存储,节省存储空间掌握数组到稀疏数组掌握稀疏数组返回原数组案例可以看到以稀疏数组存储有效的节省了空间,接下来我们来实现代码。代码创建数组,初始化并输出 // 创建原始二维数组 int chessArr1[][] = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][3] = 2;
2020-06-13 20:09:46
224
原创 [ Java学习基础 ] Java的抽象类与接口
[ Java学习基础 ] Java的抽象类与接口一篇非常好的文章,把抽象类和接口的概念讲解的清晰透彻。来自腾讯云
2020-06-12 19:14:13
175
原创 通过pyinstaller形成pyton3.8的可执行文件
通过pyinstaller形成pyton3.8的可执行文件问题截至目前,python3.8还不能通过pip install pyinstaller的方式下载pyinstaller解决方案登录pyinstaller 网站pyinstallerwin选择第二栏第二个链接,Current development code(zip)下载完后解压,可以看见文件夹里有一个setup.pywin+R打开cmd,输入python setup.py install输入pip list检查是
2020-06-04 14:30:33
944
原创 【AI】Python|人工智能|AI简单实现人脸检测、人脸识别
Python实现人脸检测本篇并不属于面向过程,而是使用百度智能云的API,也是我最近新发现的比较有意思的玩法,可以供娱乐参考。百度智能云这里用百度示例,其他还有腾讯、阿里云等大厂的各式各样的人工智能服务可以自行浏览。可以点击立即使用,然后登录,里面有详细的文档、和API使用说明,可以供返回的人脸参数包括:年龄、性别、是否带眼镜、是否带口罩、颜值打分(这个功能比较有意思)等,可以自行探索。以下呢简单修改了一下官方文档中的代码(并不完整,且修改起来有一定难度),让执行更加简单获取官方的access
2020-06-03 20:08:41
1025
原创 JetBrains软件中如Pycharm和IDEA 自动补全
自动补全就是输入一部分代码然后自动补充完整,是一个十分高效的功能。例如在IDEA中输入psvm,出现提示框,按下回车,自动补齐为public static void main(String[] args) { }但有时候点了其他位置,提示框会消失,如何快速打开提示框?我们可以通过设置快捷键 alt + /(可以根据个人习惯)打开IDEA–>FileSettings–>Keymap点击设置图标点击Duplicate(复制),复制是为了保留原版然后在Windows
2020-05-23 00:37:24
1194
原创 Python打印杨辉三角
题目:python打印杨辉三角杨辉三角性质有很多,我们的程序主要运用以下性质第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。第n行的数字有n项大致形状(来自百科)程序运行效果n = 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 n = 10 1 1 1
2020-05-10 19:44:36
4405
原创 python实现快速排序
python实现快速排序快速排序基本思想(白话)选择基准值。将数组分成两个子数组:小于基准值的元素和大于基准值的元素。对这两个子数组进行快速排序。以此实现全部排序,时间复杂度为O(N*logN),要小于选择排序的O(N^2)python代码# 输入列表array = list(map(int,input("输入列表,数字用空格分隔:").split()))# 用递归的方法...
2020-05-07 22:02:32
249
原创 python 输入一个列表
python输入列表(数字列表)使用方法split()map()input()split()参数-str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。-num – 分割次数。默认为 -1, 即分隔所有。s = input("输入:").split()print(s)运行输入:1 2 3 4['1', '2', '3', '4']ma...
2020-05-07 21:52:21
70881
6
原创 打印出如下图案(菱形)
打印如下图案使用python# *# ***# *****# *******# *****# ***# *# 上方for i in range(1,5): n = 2 * i - 1 m = 4 - i for j in range(...
2020-05-06 19:53:28
1734
原创 编程找出1000以内的所有完数。
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。用python实现# 这层for循环找到该数的所有公因数for j in range(2, 1001): k = [] # n的作用是统计列表元素个数 n=len(k)-1 n = -1 s = j for i in range(1, j): ...
2020-05-06 17:37:45
2037
原创 打印水仙花数,其各位数字立方和等于该数本身
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。用python方法实现看到题目很快能想到用三层for循环,但再想想,觉得是不是并不需要所有数都判断,比如9的三次方和9的三次方之和已经超过1000了,不可能是水仙花数。如何进行排除呢?一开始是想百位数、十位数、个位数任意两个立...
2020-05-05 14:28:22
1769
原创 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。如果要输出这样的数列,实际上很简单,每一个数等于前两个数之和。但如果转化为问题,能否判断出时斐波那契数列问题呢?有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?网上看...
2020-05-05 09:48:25
32464
3
原创 Pycharm中如何设置默认自动换行
[1] 打开File[2] setting[3] 找到Editor–>General[4] General中找到 Soft Wraps[5]勾选soft wrap files,将需要自动换行的文件后缀名添加进去,python文件就添加.py
2020-05-04 15:21:00
680
原创 python选择排序
选择排序就是每一次选出最小(大)的元素排在队首(末),时间复杂度为O(n^2),复杂度很高,但仍有必要了解代码是如何实现的。这里以从小到大为例,通过两层for循环,假定第一个元素为最小,使它与后面所有元素比较,如果大与某个元素则交换位置,再以新获得的最小元素与列表后面元素比较,重复。arr = list(map(int,input("输入三个数组成的列表:").split())) #通过这种方...
2020-05-04 13:09:30
443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅