- 博客(25)
- 收藏
- 关注
原创 【手把手带你刷Leetcode力扣】12.数据结构 - JAVA
数组创建数组int[] a = {1, 2, 3};System.out.println("a: "+Arrays.toString(a));int[] b = new int[]{1, 2, 3};int[] c = new int[3];for(int i = 0; i < a.length; i++) { c[i] = i+1;}ArrayList<Integer> arr = new ArrayList<>();for(int i = 0; i
2021-12-04 22:06:39
342
原创 【手把手带你刷Leetcode力扣】11.数据结构 - 字典树/前缀树Trie
字典树/前缀树Trie自动匹配的程序数组:[goog, googl, google, bai, baidu, gi]ggooggooglgooglegigogooggooglgoogle插入:O(N)搜索:O(N)前缀存在:O(NM)(元素个数匹配的时间复杂度)Trieroot节点 root = Trie()孩子节点 Hash结束Flag对应的值插入:O(K)搜索:O(K)前缀存在:O(K)词频统计学习视频来源B站—爱学习的饲养员—手把手带你刷Le
2021-10-19 09:54:03
243
原创 【手把手带你刷Leetcode力扣】10.数据结构 -图
图:顶点邻居节点边度:边的数量无向图有向图入度:指向该顶点的边的数量出度:以该顶点为起点指向别的顶点的边的数量权重图最短路径贝尔曼-福特算法(Bellman-Ford)迪克斯特拉算法(Dijkstra)DFSBFS学习视频来源B站—爱学习的饲养员—手把手带你刷Leetcode力扣...
2021-10-10 17:26:51
201
原创 【手把手带你刷Leetcode力扣】9.数据结构 -堆
:父子关系节点根节点叶子节点–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树:每个节点最多两个子节点普通二叉树满二叉树:除了叶子节点,每个节点都有左右两个子节点,所有叶子节点在同一层上完全二叉树:从树的根节点,从上到下,从左到右,依次填满节点形成的二叉树–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树的遍历:前序遍历:根节点 - 左子树 - 右子树中序遍历:除了叶子节点,每个节点都有左右两个
2021-10-10 17:19:18
214
原创 【手把手带你刷Leetcode力扣】8.数据结构 - 树
树:父子关系节点根节点叶子节点–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树:每个节点最多两个子节点普通二叉树满二叉树:除了叶子节点,每个节点都有左右两个子节点,所有叶子节点在同一层上完全二叉树:从树的根节点,从上到下,从左到右,依次填满节点形成的二叉树–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树的遍历:前序遍历:根节点 - 左子树 - 右子树中序遍历:除了叶子节点,每个节点都有左右两
2021-05-18 20:33:55
178
原创 【手把手带你刷Leetcode力扣】7.数据结构 - 集合
Set集合:无序 不重复主要作用:检查某一个元素是否存在检查是否存在重复元素set:HashSetLinklistSetTreeSet时间复杂度访问Access — X搜索Search — O(1) — 碰撞情况 — O(k) — k为碰撞元素的个数插入Insert — O(1) — 碰撞情况 — O(k)删除Delete — O(1) — 碰撞情况 — O(k)常用操作创建集合s = set()–添加元素s.add(10)(添加的元素)O(
2021-05-18 19:49:00
179
原创 【手把手带你刷Leetcode力扣】6.数据结构 - 哈希表
哈希表:散列表key : value数组实现java - hashmappython - 字典key -> 哈希函数 -> 内存地址 -> key/value对应的内存地址哈希碰撞:2个不同的key通过同一个哈希函数得到相同的内存地址链表解决哈希碰撞时间复杂度访问Access — X搜索Search — O(1) — 碰撞情况 — O(k) — k为碰撞元素的个数插入Insert — O(1)删除Delete — O(1) — 碰撞情况常用操作
2021-05-18 10:07:21
166
原创 【手把手带你刷Leetcode力扣】5.数据结构 - 栈
栈:先进后出浏览器的后退功能时间复杂度访问Access — O(1) — 栈顶元素搜索Search — O(N)插入Insert — O(1)删除Delete — O(1) — 栈顶元素常用操作创建栈stack = []–添加元素stack.append()(添加的元素)O(1)–获取栈顶元素 — 即将出栈的元素stack[-1]–删除栈顶元素 — 即将出栈的元素temp = stack.pop()O(1)–栈的长度len(s
2021-05-16 16:11:42
157
原创 【手把手带你刷Leetcode力扣】4.数据结构 - 队列
队列:先入先出单端队列:只有一个口可以进,一个口可以出双端队列:两个口都可以进,两个口都可以出时间复杂度访问Access — O(N)搜索Search — O(N)插入Insert — O(1)删除Delete — O(1)常用操作创建队列queue = deque()函数创建为双端队列–添加元素a.append()(添加的元素)O(1)–获取即将出队的元素temp1 = queue[0]–删除即将出队的元素temp2 = queue
2021-05-16 15:55:10
135
原创 【手把手带你刷Leetcode力扣】3.数据结构 - 链表
时间复杂度访问Access — O(N)搜索Search — O(N)插入Insert — O(1)删除Delete — O(1)特点写的快读很慢读少写多常用操作创建链表linkedlist = deque()–添加元素linkedlist.append()(添加的元素)O(1)–linkedlist.insert(2, 99)(插入的索引,插入的元素)O(N)–访问元素element = linkedlist[2]O(N)–查
2021-05-16 11:07:21
212
原创 【手把手带你刷Leetcode力扣】2.数据结构 - 数组
数组:在连续的内存空间中,存储一组相同类型的元素区分元素索引 — (从0开始)–数组访问(Access) — 通过索引取得某个元素的值a[1]数组搜索(Search) — 遍历数组搜索某个元素且可返回索引时间复杂度访问Access — O(1)搜索Search — O(N)插入Insert — O(N)删除Delete — O(N)特点适合读不适合写读多写少常用操作创建数组添加元素访问元素修改元素删除元素遍历数组查找元素数组的长度数组排
2021-05-13 16:38:05
168
原创 【手把手带你刷Leetcode力扣】1.算法的时间与空间复杂度
什么是时间复杂度算法的执行效率算法的执行时间与算法的输入值之间的关系def test(num): # N total = 0 # a for i in range(num): total += i # b return total # ca+Nb+c忽略常量忽略系数O(N)常见时间复杂度案例分析for/whileO(1)def O1(num): i = num j = num*2 return i+jO(logN) - 二分查找法def OlogN
2021-05-13 11:42:32
478
原创 【小甲鱼】零基础入门学习Python(七)模块
容器 - 数据的封装 函数 - 语句的封装 类 - 方法和属性的封装 模块 - 模块就是程序 命名空间导入模块 import 模块名 from 模块名 import 函数名(*所有函数) import 模块名 as 新名字if __name__ == '__main__'搜索路径 Python38\\lib\\site-packages sys.path.append()包package 创建一个文件夹用于存放相关模块,文件夹名字即为包的名字 在文件夹中...
2020-07-05 11:25:15
196
原创 【小甲鱼】零基础入门学习Python(六)魔法方法
魔法方法总是被双下划线所包围 魔法方法是面向对象的python的一切__init__(self[, ...]) 需要参数,重写传入 不能返回其他,只能返回None__new__(cls[, ...]) 当继承一个不可变类型,但又需要进行修改 返回实例化的对象...
2020-07-05 10:45:43
218
原创 【小甲鱼】零基础入门学习Python(五)类、对象
对象 = 属性 + 方法 封装:信息隐蔽技术 继承:子类自动共享父类之间数据和方法的机制 多态:不同对象对同一方法响应不同的行动self 类的方法第一个参数为self实例化的时候可以传递参数 通过重写__init__()添加参数 __init__(self, param1, param2)定义私有变量在变量名或函数名前加上__两个下划线,外部无法访问 名称改编为_类名__变量名class Person: __name = "A" Def getNam...
2020-07-03 21:36:51
171
原创 【小甲鱼】零基础入门学习Python(一)列表、元组、字符串
Alt+N 上一条语句 Alt+P下一条语句 Ctrl+N 新建 Shift 提示 F5 运行 dir(__builtins__) help() \' 原始字符串r
2020-07-01 11:52:32
168
原创 笨办法学Python笔记-习题5
如何将浮点数四舍五入?你可以使用 round() 函数,例如: round(1.7333)Python 格式化字符%s 字符串 (采用str()的显示)%r 字符串 (采用repr()的显示)%c 单个字符%b 二进制整数%d 十进制整数%i 十进制整数%o 八进制整数%x 十六进制整数%e 指数 (基底写...
2019-06-11 13:59:05
177
原创 笨办法学Python笔记-习题3
运算优先级是什么样子的?美国我们用 PEMDAS 这个简称来辅助记忆,它的意思是“括号、指数、乘、除、加、减”——Parentheses Exponents Multiplication Division Addition Subtraction —— 这也是 Python 里的运算优先级。计算结果只有整数,没有小数部分...
2019-06-11 11:47:44
334
原创 笨办法学Python笔记-习题2
为什么要让我倒着阅读代码?这样可以避免让你的大脑跟着每一段代码内容的意思走,这样可以让你精确处理每个片段,从而让你更容易地发现代码中的错误。这是一个很好使的查错技巧。...
2019-06-11 11:22:08
158
原创 笨办法学Python笔记-习题1
取名为 ex1.py 2.py不是指后缀名,而是确指文件名。python ex1.py需要先进入文件所在目录加分习题1.让你的脚本再多打印一行。print "\n"2.让你的脚本只打印一行。print "Hello World!",print "Hello Again",print "I like typing this.",print "This is...
2019-06-03 20:25:20
191
原创 笨办法学Python笔记-习题0
终端(Terminal)和命令行解释器(Shell)Windows 的「小黑框」(Command Prompt),就是一个终端(Terminal)在终端里面「输入命令,得到结果」的交互程序,就是命令行解释器(Shell)Windows 最新的 Shell 叫 Power Shell老版本即是cmdTerminal 就像是一个人的衣服,可以有各种颜色、形状甚至功能;那么 Shell 则...
2019-06-03 15:22:04
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人