自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 收藏
  • 关注

原创 leetCode刷题记录1

200. 岛屿数量经典老题 D/BFS求连通分量个数先用BFS写了一下,好多细节错误然后代码写得很糟糕看了题解,再去优化:1、DFS代码要比BFS简单多了2、遍历过的直接修改值为非1即可,不用专门准备visit数组了3、DFS也不需要dx、dy数组,直接写四次dfs递归调用即可,看起来清爽多了重写了一下,果然舒服多了,不要总想着c++那一套,太麻烦了:206. 反转链表206. 反转链表据说递归可以做这题果然可以,类似后序遍历的写法,也很简单207. 课程表207. 课程表好久

2023-08-09 23:33:12 160

原创 leetCode刷题记录3-面试经典150题

DFS暴力枚举,过了198个,也不错了。408原题,4刷了,现在感觉很水了。注意k可能很大,需要对长度取一下模。没啥头绪,先暴力拿分,也是能力。强制加缓存,竟然超出内存限制。

2023-07-26 19:56:22 526

原创 面试题复盘

大厂面试题复盘

2023-06-14 22:26:21 85

原创 leetCode刷题记录2

同步遍历,但是得先验证,后验的话root=null->root=new TreeNode() 连不起来。left应该小于右边所有元素 为何非要从前往后遍历呢,从后往前遍历 其实一趟就够了呀。想想之前遍历树时遇到过这个问题,当时用前缀和+Map做得,飞快呀,这里不也可以么。同样right是后面都比它大 也可以从前往后一趟遍历。或者排序后比较前最长前缀和最长后缀。当然两次遍历可以优化为1次遍历。果然可以,快了不是一点点啊。竟然才7ms,也挺快的呀。这么写,会快2~3ms。0ms 时间效率还不错。

2023-05-21 12:04:55 462

原创 leetcodeTmp

DFS排列:每个元素可选0次,1次以及多次。

2023-04-12 15:55:02 335

原创 leetCode刷题记录0

d 不如就算出来i=(a[i]-a[0])/d 若不能整除false 或者出现重复i false Hash[d]记录是否1~d都出现过 真是等差一定会0~len-1各出现一次的。一次遍历找到最大最小值 那么公差 d = (max-min)/(len-1) 不能整除直接return false。O(n)+一个O(n)空间的数组就OK了,完全不需要排序。然后再遍历,第i项 a[i] = a[0]+i。

2023-03-23 21:35:47 300

原创 Python-Utils

【代码】Python-Utils。

2023-02-05 22:15:36 934

原创 剑指offer 81题-Python版本(前37DP之前)-Java版本(后43DP开始)

树2有的树1都有 直到树2遍历完 返回True 【可以树1有,树2没有,仍返回True,也就是树1跟着树2遍历即可 例如层序跟着树2,可以少入队一些结点】前面2种方式都过于依赖先序遍历 (导致有了递归,看起来好难 其实简单理解为先序遍历,也还好)难点: 两个子树的判断(是否有子关系),需要单独拎出来。下面这种方式完全用层序遍历 理解起来就简单多了。

2023-01-20 15:28:34 515

原创 JZ76 删除链表中重复的结点

【代码】JZ76 删除链表中重复的结点。

2023-01-19 21:45:25 63

原创 JZ35 复杂链表的复制

【代码】JZ35 复杂链表的复制。

2023-01-18 10:18:36 57

原创 JZ22 链表中倒数最后k个结点

【代码】JZ22 链表中倒数最后k个结点。

2022-12-08 15:15:33 51

原创 JZ23 链表中环的入口结点

【代码】JZ23 链表中环的入口结点。

2022-12-08 14:51:09 180

原创 Python科学计算库-Matplotlib

Matplotlib学习目标应用Matplotlib的基本功能实现图形显示应用Matplotlib实现多图显示应用Matplotlib实现不同画图种类matplotlib.pytplot包含了一系列类似于matlab的画图函数。1.2.2 图形绘制流程1.创建画布 – plt.figure()2.绘制图像 – plt.plot(x, y)以折线图为例3.显示图像 – plt.show()举例:展现上海一周的天气,比如从星期一到星期日的天气温度如下2、折线图(plot)与基础绘

2022-12-03 17:05:07 536

原创 Python函数4-API

长期更新1.1 random.random()1.2 random.seed(n)用于设定种子值,其中的n可以是任意数字。random.random() 生成随机数时,每一次生成的数都是随机的。但是,使用 random.seed(n) 设定好种子之后,在先调用seed(n)时,使用 random() 生成的随机数将会是同一个。(保证每次运行的随机结果一样)1.3 random.uniform(a,b)返回a,b之间的均匀分布里随机采样的浮点数,若a=b则范围

2022-12-03 14:41:34 682

原创 python面向对象小练习-学员管理系统-eval()、__dict__

使用面向对象编程思想完成学员管理系统的开发,具体如下:创建项目目录,例如:程序文件如下:需求:3.2 managerSystem.py需求:3.2.2 管理系统框架需求:系统功能循环使用,用户输入不同的功能序号执行不同的功能。3.3 main.py3.4 定义系统功能函数3.4.1 添加功能需求:用户输入学员姓名、性别、手机号,将学员添加到系统。步骤代码3.4.2 删除学员需求:用户输入目标学员姓名,如果学员存在则删除该学员。步骤用户输入目标学员姓名遍历学员数据列表,如果

2022-12-03 11:46:25 498

原创 Python模块和包

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。

2022-11-27 19:24:54 481

原创 Python异常

在Python中,抛出自定义异常的语法为raise 异常类对象。需求:密码长度不足,则报异常(用户输入密码,如果输入的长度不足3位,则报错,即抛出自定义异常,并捕获该异常)。# 自定义异常类,继承Exception class ShortInputError(Exception) : def __init__(self , length , min_len) : self . length = length。

2022-11-26 20:17:27 109

原创 Python面向对象3-其他-多态、类属性(静态)、类方法(带参静态)、(无参)静态方法

类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性。多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。

2022-11-25 23:20:45 241

原创 Python面向对象2-继承-单继承、多继承、多层继承、重写、super、私有属性方法

故事主线:一个煎饼果子老师傅,在煎饼果子界摸爬滚打多年,研发了一套精湛的摊煎饼果子的技术。故事推进:daqiu 是个爱学习的好孩子,想学习更多的煎饼果子技术,于是,在百度搜索,报班学习煎饼果子技术。故事:daqiu掌握了师父和培训的技术后,自己潜心钻研出自己的独门配方的一套全新的煎饼果子技术。不由任意内置类型派生出的类,称之为经典类。注意:当一个类有多个父类的时候,默认使用第一个父类的同名属性和方法。子类和父类具有同名属性和方法,默认使用子类的同名属性和方法。生活中的继承,一般指的是子女继承父辈的财产。

2022-11-18 17:30:30 852

原创 Python面向对象1-基础-属性(定义+获取)、当前对象self、构造器init、析构器del、打印器str、案例

Python2中类分为:经典类 和 新式类语法class 类名() : 代码 . . . . . .注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯。体验class Washer() : def wash(self) : print('我会洗衣服')拓展:经典类 (无任何继承关系 继承的()都没有)不由任意内置类型派生出的类,称之为经典类class 类名 : 代码 . . . . . .地瓜的属性被烤的时间地瓜的状态添加的调料地瓜的方法被烤用户根据意愿设定每次烤地瓜的时间。

2022-11-18 15:49:51 376

原创 Python文件-

需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为xx[备份]后缀,例如:test[备份].txt)。也就是字节流,字节流也称万能流,什么格式的文件(图像、语音、文本)都能读写。readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且。name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。,这是一个无效文件,程序如何更改才能限制只有有效的文件名才能备份?mode:设置打开文件的模式(访问模式):只读、写入、追加等。答:读取内容、写入内容、备份内容…

2022-11-17 22:29:51 101

原创 Python函数3加强-lambda、多级排序、高阶函数: map()、reduce()、filter()

1、添加学员2、删除学员3、修改学员信息4、查询学员信息5、显示所有学员信息6、退出系统系统共6个功能,用户根据自己需求选取。所有功能函数都是操作学员信息,所有存储所有学员信息应该是一个全局变量,数据类型为列表。info = [ ]

2022-11-17 13:01:41 227

原创 JZ52 两个链表的第一个公共结点

【代码】JZ52 两个链表的第一个公共结点。

2022-11-15 22:49:36 103

原创 JZ25 合并两个排序的链表

【代码】JZ25 合并两个排序的链表。

2022-11-15 22:17:43 76

原创 重用Python 刷剑指

辅助函数: MyList.py。

2022-11-15 21:26:43 170

原创 JZ24 反转链表

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。如当输入链表{1,2,3}时,

2022-11-15 21:25:33 113

原创 python函数2_变量作用域、函数的参数(位置参数、关键字参数、缺省参数、不定长位置参数、不定长关键字参数)、拆包、引用

变量作用域全局:函数体内外都能生效局部:当前函数体内部生效函数多返回值写法return 表达式 1 , 表达式 2. . .函数的参数位置参数形参和实参的个数和书写顺序必须一致关键字参数写法:key=value特点:形参和实参的书写顺序可以不一致;关键字参数必须书写在位置参数的后面缺省参数缺省参数就是默认参数key=vlaue不定长位置参数收集所有位置参数,返回一个元组不定长关键字参数收集所有关键字参数,返回一个字典。

2022-11-14 22:33:16 117

原创 Python推导式-[xx for xx in range() if xx]

推导式的作用:简化代码推导式写法# 列表推导式 [ xx for xx in range() ] # 字典推导式 {xx1 : xx2 for . . . in . . . } # 集合推导式 {

2022-11-14 21:42:59 472

原创 Python公共操作(公共函数,运算符)-运算符 in / not in 公共方法 len() del() range() enumerate() 数据类型转换 tuple() list() set(

运算符公共方法len()del()range()数据类型转换tuple()list()set()

2022-11-14 21:13:50 186

原创 Python集合set-增加数据(add()、update())_删除数据(remove(x)、discard(x)、pop())_查找数据(in、not in)

数据序列是个大类型,包括: list,str,tuple,dict,set。,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。, 但是如果要创建空集合只能使用。是用来创建空字典的。

2022-11-14 20:42:58 1774

原创 Python字典dict-get()、keys()、values()、items()、各种优质遍历法

思考4:数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使用同一的标准查找数据呢?注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。注意:如果key存在则修改这个key对应的值;思考1: 如果有多个数据,例如:‘Tom’, ‘男’, 20,如何快速存储?如果当前查找的key存在,则返回对应的值;思考3:如果将来数据顺序发生变化,如下所示,还能用。答:不能,数据’Tom’此时下标为2。答:字典,字典里面的数据是以。注意:字典为可变类型。

2022-11-14 20:20:28 1522

原创 Python元组tuple(元素值不可变)-查找(index、count、len、下标访问)_不支持修改(除非嵌套了可修改类型)

元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。# 多个数据元组 t1 =(10 , 20 , 30) # 单个数据元组 t2 =(10 ,)注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型。

2022-11-14 19:37:44 666

原创 Python列表List-查(index、count)_增(append、extend、insert)_删(del、pop、remove)_改(reverse、sort)

列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查。如果append()追加的数据是一个序列,则追加整个序列到列表 [变成嵌套列表了]列表追加数据的时候,直接在原列表里面追加了指定数据,即。需求:查找用户输入的名字是否已经存在。注意:如果查找的数据不存在则报错。列表可以一次性存储多个数据,作用:增加指定数据到列表中。​ 2.2 序列数据 ▲。​ 2.2 删除指定数据。

2022-11-08 20:37:13 883

原创 Python字符串-切片、查找、修改、判断

字符串是 Python 中最常用的数据类型。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数。注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串。所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。

2022-11-08 16:52:22 1241

原创 算法重要结论

1、根据二叉树前序遍历和中序遍历的递归算法种递归工作栈的状态变化得出:前序序列和中序序列的关系相当于以前序序列为入栈次序,以中序序列为出栈次序。

2022-06-23 22:43:04 1357 1

原创 JZ79 判断是不是平衡二叉树

描述输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。样例解释:样例二叉树如图,为一颗平衡二叉树注:我们约定空树是平衡二叉树。数据范围: n≤100,树上节点的val值满足 0≤n≤1000要求:空间复杂度O(1) ,时间复杂度 O(n)

2022-05-14 21:30:31 51

原创 JZ36 二叉搜索树与双向链表

描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0≤n≤1000,二叉树中每个节点的值 0≤val≤1000要求:空间复杂度O(1) (即在原树上操作),时间复杂度O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据...

2022-05-14 14:33:00 84

原创 JZ34 二叉树中和为某一值的路径(二)

描述输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n如二叉树root为{10,5,12,4,7},expectNumber为22则合法路径有[[10,5,7],[10,12]]数据范围:树中节点总数在范围[0, 5000.

2022-05-14 10:29:14 163 2

原创 JZ82 二叉树中和为某一值的路径(一)

给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如:给出如下的二叉树, sum=22返回true,因为存在一条路径5\to 4\to 11\to 25→4→11→2的节点值之和为 22数据范围:1.树上的节点数满足 0≤n≤10000...

2022-05-09 10:54:27 232

原创 JZ33 二叉搜索树的后序遍历序列 (未完结合JZ31)

描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。数据范围: 节点数量 0≤n≤1000,节点上的值满足 1≤val≤10^5,保证节点上的值各不相同要求:空间复杂度 O(n),时间时间复杂度O(n^2)提示:1.二叉搜索树是指父亲节点大于左子树中的全部节点,但是小于右子树中的全部节点的树。2.该题我们约定空树不是二叉搜索树3.后序遍历是指按照 “左子树-右子...

2022-05-08 23:27:01 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除