数据结构与算法
学习数据结构与算法,记录一些笔记,使用python实现
乌鸦向北
这个作者很懒,什么都没留下…
展开
-
算法之贪心
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。贪心的套路(什么时候用贪心)很多同学做贪心的题目的时候,想不出来是贪心,想知道有没有什么套路可以一看就看出来是贪心。说实话贪心算法并没有固定的套路。所以唯一的难点就是如何通过局部最优,推出整体最优。原创 2023-02-28 20:32:29 · 107 阅读 · 0 评论 -
算法之动态规划
从斐波那契数列看动态规划这里使用递归,很慢,是因为在递归过程中有非常多的重复计下面我们直接用一个列表存放n前面的数。原创 2023-02-28 20:26:16 · 74 阅读 · 0 评论 -
数据结构之二叉搜索树与AVL树
若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。原创 2023-02-27 20:31:09 · 62 阅读 · 0 评论 -
数据结构之树与二叉树
如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。原创 2023-02-27 20:24:45 · 52 阅读 · 0 评论 -
数据结构之哈希表
直接寻址表+哈希函数==哈希表哈希表通过关键字码直接访问地址,元素值为val,通过哈希函数h(val)==index得到索引值(值域为哈希表的长度),val元素直接放在得到的索引值的位置上。原创 2023-02-24 10:23:26 · 79 阅读 · 0 评论 -
链表之链表相交
此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB(这里不是当前节点的值相等,而是以cur为头结点的链表相等),则找到交点。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。我们求出两个链表的长度,并求出两个链表长度的差值,然后让curA移动到,和curB 末尾对齐的位置,原创 2023-02-24 09:09:07 · 68 阅读 · 0 评论 -
链表之环形链表
链表原创 2023-02-23 20:21:08 · 49 阅读 · 0 评论 -
链表之19.删除链表的倒数第N个节点
链表原创 2023-02-23 20:14:59 · 55 阅读 · 0 评论 -
链表之206.反转链表
链表原创 2023-02-23 18:33:32 · 103 阅读 · 0 评论 -
链表之24. 两两交换链表中的节点
链表原创 2023-02-23 18:54:36 · 51 阅读 · 0 评论 -
链表之203.移除链表元素
链表原创 2023-02-23 18:27:29 · 37 阅读 · 0 评论 -
005数据结构之栈和队列
栈和队列原创 2023-02-23 10:19:34 · 56 阅读 · 0 评论 -
004数据结构之链表
链表原创 2023-02-23 10:09:16 · 39 阅读 · 0 评论 -
003算法之希尔排序,计数排序,基数排序,桶排序
希尔排序,计数排序,基数排序,桶排序原创 2023-02-23 09:59:06 · 41 阅读 · 0 评论 -
002算法之快速排序,归并排序,堆排序
快速排序,归并排序(python)原创 2023-02-23 09:25:20 · 42 阅读 · 0 评论 -
001算法之冒泡排序,选择排序,插入排序
冒泡排序(python)原创 2023-02-23 09:16:11 · 61 阅读 · 0 评论