
手把手带你刷Leetcode力扣
文章平均质量分 56
爱彻切尔
这个作者很懒,什么都没留下…
展开
-
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷Leetcode力扣】算法
普通双指针:两个指针往同一个方向移动对撞双指针:两个指针面对面移动快慢双指针:慢指针+快指针原创 2021-10-10 20:00:14 · 446 阅读 · 0 评论 -
【手把手带你刷Leetcode力扣】10.数据结构 -图
图:顶点邻居节点边度:边的数量无向图有向图入度:指向该顶点的边的数量出度:以该顶点为起点指向别的顶点的边的数量权重图最短路径贝尔曼-福特算法(Bellman-Ford)迪克斯特拉算法(Dijkstra)DFSBFS学习视频来源B站—爱学习的饲养员—手把手带你刷Leetcode力扣...原创 2021-10-10 17:26:51 · 201 阅读 · 0 评论 -
【手把手带你刷Leetcode力扣】9.数据结构 -堆
:父子关系节点根节点叶子节点–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树:每个节点最多两个子节点普通二叉树满二叉树:除了叶子节点,每个节点都有左右两个子节点,所有叶子节点在同一层上完全二叉树:从树的根节点,从上到下,从左到右,依次填满节点形成的二叉树–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树的遍历:前序遍历:根节点 - 左子树 - 右子树中序遍历:除了叶子节点,每个节点都有左右两个原创 2021-10-10 17:19:18 · 214 阅读 · 0 评论 -
【手把手带你刷Leetcode力扣】8.数据结构 - 树
树:父子关系节点根节点叶子节点–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树:每个节点最多两个子节点普通二叉树满二叉树:除了叶子节点,每个节点都有左右两个子节点,所有叶子节点在同一层上完全二叉树:从树的根节点,从上到下,从左到右,依次填满节点形成的二叉树–高度:从下往上从0开始深度:从上往下从0开始层:从上往下从1开始二叉树的遍历:前序遍历:根节点 - 左子树 - 右子树中序遍历:除了叶子节点,每个节点都有左右两原创 2021-05-18 20:33:55 · 178 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论 -
【手把手带你刷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 阅读 · 0 评论