
数据结构
文章平均质量分 52
XD742971636
https://www.dong-blog.fun/
展开
-
岛屿的最大面积 数据结构与算法 DFS搜索
from typing import Listclass Solution: def dfs(self, grid, cur_i, cur_j) -> int: # 超出边界 or 不是陆地 程序靠此结束 if cur_i < 0 or cur_j < 0 or cur_i == len(grid) or cur_j == len(grid[0]) or grid[cur_i][cur_j] != 1: return.原创 2021-06-25 10:15:28 · 232 阅读 · 0 评论 -
数据结构 栈混洗 个数 Stack Shuffling 卡特兰数
https://blog.csdn.net/darkrabbit/article/details/89409548(1) 出栈序列共有多少种可能?(2) 求出所有出栈(入栈)序列。(3) 给出一个出栈序列,问栈的容量最少需要多少?(4) 给出一个(或多个)出栈序列,问此序列是不是(哪一个序列不是)原序列混洗得到的?python题目描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车原创 2020-11-20 00:33:14 · 1005 阅读 · 0 评论 -
数据结构 python3 二叉树遍历 前序 中序 后序
前序[0, 1, 3, 4, 2]# Definition for a binary tree node.from typing import Listclass TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = rightclass Solution: def ino.原创 2020-11-10 01:09:06 · 213 阅读 · 0 评论 -
递归模板
https://mp.weixin.qq.com/s?__biz=MzU0ODMyNDk0Mw==&mid=2247487910&idx=1&sn=2670aec7139c6b98e83ff66114ac1cf7&chksm=fb418286cc360b90741ed54fecd62fd45571b2caba3e41473a7ea0934f918d4b31537689c664&token=1327182919&lang=zh_CN#rd递归函数模板:p原创 2020-11-09 10:21:19 · 158 阅读 · 0 评论 -
十大排序算法 python
文章目录1 冒泡排序 Bubble Sort1.1 冒泡排序 Bubble Sort1.2 添加标记的冒泡排序1.3 标记有序区域的冒泡排序1.4 双向的鸡尾酒排序2 选择排序参考详细:https://shop.m.taobao.com/shop/shop_index.htm?user_id=905848198&item_id=621480712736&spm=a2141.7c.0.i21 冒泡排序 Bubble Sort1.1 冒泡排序 Bubble Sort两两比较交换,直到最原创 2020-10-31 01:50:01 · 218 阅读 · 0 评论 -
数据结构 图 图的表示 图的搜索 深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜)
深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜原创 2020-10-01 15:08:43 · 618 阅读 · 0 评论 -
数据结构 树 树的表示(存储) 搜索树(用于高效查找)
前面所说的都是线性表,基于数组实现或者基于链表实现都有优缺点,数组做查找元素快,链表做插入删除元素快。树是半线性结构(semi-linear structure),结合了二者特点。本书约定,仅含单个节点的树高度为0,空树高度为-1。特别地,约定根节点的深度depth® = 0,故属于第0层。特别地,不含一度节点的二叉树称作真二叉树(proper binary tree)。有序多叉树 = 二叉树 ,在全遍历中就能看出能相互转化。二叉树表达能力和多叉数一样的,而且得益于其定义的简洁性以及结构的规范性原创 2020-09-27 17:44:49 · 932 阅读 · 0 评论 -
C语言 链表 栈与队列 二叉树遍历
文章目录0 [链表](https://blog.csdn.net/song_hui_xiang/article/details/47041655)1 栈2 队列0 链表1 栈2 队列https://blog.csdn.net/song_hui_xiang/article/details/47146503原创 2020-09-27 12:57:52 · 670 阅读 · 1 评论 -
数据结构 笔记 --栈与队列 C++ 语言版 邓俊辉老师
1 栈的注意点栈 一般是基于向量实现。先进后出。递归的时候就会用到栈,把这次结果压入栈,去计算下一次的。题外话:算法中避免用递归。不断压入栈有时会导致过多占用内存,2 栈的典型应用可线性描述、逆序输出、大小规模不确定。递归嵌套:具有自相似性的问题多可嵌套地递归描述。栈混洗(stack permutation)、括号匹配、逆波兰表达式3 试探回溯法 高效地实现试探回溯策略...原创 2020-09-27 02:13:33 · 224 阅读 · 0 评论 -
数据结构 笔记--列表 循位置访问 C++ 语言版 邓俊辉老师
1 链表 列表链表不是列表。我们所谈的列表更倾向于是针对对象而言的。或许应该说列表是链表的扩展。他们的物理存储结构都不是连续的,而是依赖于节点指针指向的。所以链表里面的很多算法拿到列表对象上来说,都差不多。2 向量 列表向量在物理存储上地址是连续的。所以get()、size()这类静态方法效率高。但是insert()和remove()等动态操作需要线性时间。列表则相反。...原创 2020-09-26 21:23:44 · 286 阅读 · 0 评论 -
数据结构 笔记--向量 C++ 语言版 邓俊辉老师
邓俊辉老师的书。1 有数组为什么还需要向量?几乎所有程序设计语言中都会有数组,程序设计语言的开发者将数组作为一种内置的数据类型。数组在刚开始初始化的时候就已经固定了长度,也可以依照下标查找,但还有很多种特性数组是不含有的。向量这种抽象数据类型,它是一种利用程序设计语言抽象出来的一种数据类型。我们可以在运行时开辟一块空间来放一段数据,它就是一个对象。我们可以轻易的利用操作接口方法来对这些数据进行获取、插入、删除、查找、排序、集合化。可以看到如果拥有这些方法可以对数据进行更好的处理,是数组不能替代的。原创 2020-09-26 19:43:31 · 446 阅读 · 0 评论 -
[数据结构与算法] 优先级队列/堆队列 完全二叉堆 左式堆 python里的heapq
学习 清华大学 尊敬的邓俊辉老师的C++数据结构与算法课程 第10章 优先级队列,本文旨在摘要和心得体会。文章目录1 优先级队列需求2 完全二叉堆2.1 定义2.2 getMax()2.3 insert() 插入与上滤2.4 delMax() 删除与下滤2.5 heapification 建堆2.6 就地堆排序3 左式堆3.1 堆合并3.2 左式堆3.3 左式堆合并算法3.4 左式堆 插入3.5...原创 2020-02-25 14:24:32 · 559 阅读 · 0 评论 -
[数据结构与算法] C++向量与列表
向量底层是数组实现的,物理存储是挨着的,静态的get和search还行,但是动态的remove和insert就不好操作。向量是能很快进行静态操作的,但对于动态操作反应慢。列表底层是链表,物理存储不是挨着的。可以很好地支持动态操作。...原创 2020-01-09 16:25:06 · 445 阅读 · 0 评论 -
[数据结构与算法] 排序算法 起泡排序 归并排序
起泡排序https://www.bilibili.com/video/av49361421?p=75初始版本时间复杂度O(n^2)。改进:考虑到向量中的前段和后段是不是已经是有序的。前段有的话就不再继续排序,后段有的话就把hi点放到前段最大值那里。算法是否稳定?归并排序https://www.bilibili.com/video/av18980253/时间复杂度O(nlogn)。...原创 2020-01-09 15:52:41 · 234 阅读 · 0 评论 -
[数据结构与算法] 最长公共子序列 LCS问题 python
最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。这与查找最长公共子串的问题不同的地方是:子序列不需要在原序列中占用连续的位置 。最长公共子序列问题是一个经典的计算机科学问题,也是数据比较程序,比如Diff工具,和生物信息学应用的基础。它也被广泛地应用在版本控制,比如Git用来调和文件之间的改变。使用递归解决LCS问题https://www.b...原创 2020-01-07 22:43:30 · 259 阅读 · 0 评论 -
[数据结构与算法] 由递归转向迭代 递归与迭代的区别
迭代的效率更高。以前推荐递归,如今得慢慢为了高效去迭代。以求和举例看时间复杂度。如果不加特殊说明,我们认为空间复杂度是指不含输入所占空间。减而治之的算法是这样的使用递归跟踪去计算复杂度递归跟踪有时候不合适了,需要别的方法。倒置问题里的递归上面说的都是递归的方法,下面来看迭代的方法。...原创 2020-01-04 16:14:30 · 677 阅读 · 0 评论 -
[数据结构与算法]概论 P7-P9
上一节谈了算法的复杂度度量,为了公平度量,给出了抽象模型来度量。他们就是图灵机和RAM模型,以计算次数来度量复杂度。模型只是相当于给你度量的尺子,这一节来看尺子怎么用。大O记号相当于是尺子的刻度。...原创 2019-12-25 23:08:04 · 320 阅读 · 0 评论 -
[数据结构与算法]概论 P1-P6
谈谈有穷性def hailstone(n): length = 1 Hailstone = [] Hailstone.append(n) while (1 < n): if (n % 2 == 1): n = (int)(3 * n + 1) Hailstone.append(n) ...原创 2019-12-25 21:42:32 · 245 阅读 · 0 评论