自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详解二叉树的层序遍历以及各种翻转方式,对称二叉树判断的Python实现(包含源代码)

层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。使用队列实现二叉树广度优先遍历,动画如下:##Python代码。

2023-05-07 22:24:09 403

原创 二叉树基础详解和Python代码定义,各种二叉树遍历方式详解和Python实现

满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^(h-1) 个节点。前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。●若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;●若它的右子树不空,则右子树上所有结点的值均大于

2023-05-05 18:51:28 2297

原创 队列Python(deque模块)详解,Day3(力扣239. 滑动窗口最大值,# 力扣347. 前 K 个高频元素)

结果如图2.单调栈操作1. 调用队列,分别定义pop,push,front2. pop,如果要pop的值等于队列最左边元素(滑动窗口的最大元素),则 弹出元素。3. push,首先将要进栈的元素与前边的元素比较,如果小于value的话就pop前面的元素,直到前面没有比value小的元素。然后再将value加入4. front,即取队列最左边的元素,就是每次滑动窗口的最大值5. 循环遍历数组,依次执行三个操作,将每次的front值记录到一个数组。

2023-05-04 19:08:32 344

原创 队列和栈python详解Day2(力扣20. 有效的括号 力扣1047. 删除字符串中的所有相邻重复项 力扣150. 逆波兰表达式求值)

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。

2023-05-04 13:10:55 283

原创 # 栈和队列基础Python详解(力扣232. 用栈实现队列, 力扣225. 用队列实现栈)

队列是先进先出栈是先进后出。

2023-05-03 21:51:37 304

原创 KMP算法详解 + Python源代码(力扣28. 找出字符串中第一个匹配项的下标,力扣459. 重复的子字符串)

(1)首先遍历文本串haystack,直到有一个字符与模式串needle的第一个字符相同,进入深度匹配(2)深度匹配过程中,将文本串后边几个字符(i - i+n)一一与模式串的所有字符进行匹配,匹配一个字符,record += 1(3)深度匹配后,看record是否与n=len(needle)相等,相同就说明找到了相同的字符串,返回 i ,不相同说明没有匹配成功,进入下一个 i 循环。(4)循环结束还没有返回值,说明没有匹配成功,就返回-1注意深度匹配的判定条件,不要超出索引范围,以免报错。

2023-05-02 22:08:28 375

原创 代码随想录/Day 8 字符串 力扣151 .反转字符串中的单词新解,非常方便简洁(344. 反转字符串 541. 反转字符串 II ,剑指 Offer 05. 替换空格,):

双指针用法全解

2023-04-29 13:03:01 88

原创 # 代码随想录——算法刷题--哈希表总结(454. 四数相加 II 383. 赎金信 15. 三数之和 (4)18. 四数之和)

数组可以作为简单的哈希表,但是其大小是受限的如果数组太大:(1)数组的大小是有限的,受到系统栈空间(不是数据结构的栈)的限制。(2)如果数组空间够大,但哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。集合(set)集合不受大小的限制而且利用率较高映射(dict)使用数组和set来做哈希法的局限。(1)数组的大小是受限制的,而且如果元素很少,而哈希值太大会造成内存空间的浪费。

2023-04-28 17:33:33 99 1

原创 # 哈希表Python(包含源代码)首刷和基础学习(力扣242. 有效的字母异位词)

哈希表的python算法应用

2023-04-26 11:09:54 115 1

原创 力扣刷题(Python)--链表总结,包含源代码--相关心得与思路(24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II))

按照图中所给题目要求大致如图所示,我们先用虚拟头结点连接整个链表,然后用和分别记录和位置,然后将虚拟头结点连接然后连接-->,然后将当前指针()往后移两个位置即可。(1)指针遍历结束条件。当链表长度为偶数时cur.next == None 时结束当链表长度为奇数时cur.next.next == None 时结束(2)记得用temp提前记录两边相邻的节点位置(3)记得最后结果是返回虚拟头结点的next(4)下边代码要特别注意遍历判断条件的顺序,如果颠倒就会报错。

2023-04-22 22:22:03 153 2

原创 代码随想录算法训练营Day3:链表(Python力扣● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表 )

力扣刷题python思路

2023-04-21 23:31:32 315 1

空空如也

空空如也

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

TA关注的人

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