上一页 1 2 3 4 5 6 ··· 24 下一页
摘要: 一. 反转二叉树 一. 题目描述 给你一棵二叉树的根节点 root ,反转这棵二叉树,并返回其根节点。 示例: leetcode:https://leetcode.cn/problems/invert-binary-tree/description/ 难度:【简单】 二. 思路分析1-递归 1. 首 阅读全文
posted @ 2024-03-12 08:45 Yaopengfei 阅读(3) 评论(1) 推荐(0) 编辑
摘要: 一. 删除倒数第N个节点 一. 题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例: leetcode地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/ 难度:【中 阅读全文
posted @ 2024-03-12 08:44 Yaopengfei 阅读(8) 评论(1) 推荐(0) 编辑
摘要: 一. 滑动窗口最大值 一. 题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。 滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。(求的是窗口每次移动中的最大值,最后组成的一个数组) 详见:https: 阅读全文
posted @ 2024-03-07 10:40 Yaopengfei 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一. 二. 三. ! 作 者 : Yaopengfei(姚鹏飞) 博客地址 : http://www.cnblogs.com/yaopengfei/ 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权 阅读全文
posted @ 2024-03-06 12:02 Yaopengfei 阅读(8) 评论(0) 推荐(1) 编辑
摘要: 一. 二叉树展开为链表 1. 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。(补充:先序遍历指的是 访 阅读全文
posted @ 2024-03-04 09:01 Yaopengfei 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一. 最长公共前缀 1. 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 详见:https://leetcode.cn/problems/longest-common-prefix/ 难度:【简单】 2. 思路分析 (1). 默认以数组中的第1个元素 阅读全文
posted @ 2024-02-28 10:06 Yaopengfei 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 一. 爬楼梯 1. 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 详见: https://leetcode.cn/problems/climbing-stairs/description/ 2. 分析 (1).根据题 阅读全文
posted @ 2024-02-21 20:23 Yaopengfei 阅读(52) 评论(1) 推荐(0) 编辑
摘要: 一. 动态规划详解 1. 定义 动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划也是互联网大厂和算法竞赛中非常喜欢考察的一类题目:因为通过动态规划可 阅读全文
posted @ 2024-02-20 11:19 Yaopengfei 阅读(72) 评论(1) 推荐(0) 编辑
摘要: 一. 复杂度总结 二. 性能测试 import BundleSort4 from './01-冒泡排序'; import selectionSort2 from './02-选择排序'; import insertionSort from './03-插入排序'; import mergeSort 阅读全文
posted @ 2024-02-19 10:34 Yaopengfei 阅读(10) 评论(1) 推荐(0) 编辑
摘要: 一. 二. 三. ! 作 者 : Yaopengfei(姚鹏飞) 博客地址 : http://www.cnblogs.com/yaopengfei/ 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权 阅读全文
posted @ 2024-02-03 09:30 Yaopengfei 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 一. 归并排序 【非常重要,必须手写出来,还必须理解,必须能快速手写出来】 1. 定义 它的基本思想是将待排序数组分成若干个子数组。然后将相邻的子数组归并成一个有序数组。最后再将这些有序数组归并(merge)成一个整体有序的数组。 2. 流程 步骤一:分解(Divide):归并排序使用递归算法来实现 阅读全文
posted @ 2024-01-24 21:17 Yaopengfei 阅读(16) 评论(3) 推荐(0) 编辑
摘要: 一. 认识排序算法 1. 排序算法的定义 在计算机科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串资料依照特定排序方式排列的算法。 2. 排序算法的分类标准 计算的时间复杂度:使用大O表示法,也可以实际测试消耗的时间; 内存使用量(甚至是其他电脑资源):比如外部排 阅读全文
posted @ 2024-01-17 08:26 Yaopengfei 阅读(40) 评论(1) 推荐(0) 编辑
摘要: 一. 红黑树简介 1. 背景 红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构。 它在1972年由鲁道夫·贝尔发明,被称为“对称二叉B树”,它现代的名字源于Leo J. Guibas和罗伯特·塞奇威克于1978年写的一篇论文。 2. 性质 除了符 阅读全文
posted @ 2024-01-13 18:42 Yaopengfei 阅读(23) 评论(1) 推荐(0) 编辑
摘要: 一. 平衡树详解 1. 什么是平衡树? 平衡树(Balanced Tree)是一种特殊的二叉搜索树: 其目的是通过一些特殊的技巧来维护树的高度平衡; 从而保证树的搜索、插入、删除等操作的时间复杂度都较低; 2. 为什么需要平衡树? 如果一棵树退化成链状结构,那么搜索、插入、删除等操作的时间复杂度就会 阅读全文
posted @ 2024-01-09 16:40 Yaopengfei 阅读(81) 评论(1) 推荐(0) 编辑
摘要: 一. 双端队列 1. 回顾 默认的队列是先进先出的, 即只允许在front前端出队,在near后端入队 2. 什么是双端队列? 允许在队列的两端进行出队 和 入队 3. 实操 继承之前的队列MyQueue,然后新增addFront、removeBack两个方法即可 PS: 双端队列了解即可,实用性不 阅读全文
posted @ 2024-01-08 10:34 Yaopengfei 阅读(46) 评论(1) 推荐(0) 编辑
摘要: 一. 堆简介 1. 什么是堆结构? 堆的本质是一种特殊的树形数据结构,使用完全二叉树来实现,平时使用的基本都是二叉堆 二叉堆用树形结构表示出来是一颗完全二叉树,通常在实现的时候我们底层会使用数组来实现。 二叉堆又可以划分为最大堆和最小堆。 (1) 最小堆:堆中每一个节点都小于等于(<=)它的子节点; 阅读全文
posted @ 2024-01-05 08:41 Yaopengfei 阅读(414) 评论(1) 推荐(0) 编辑
摘要: 一. 循环链表简介 1. 什么是循环链表? 在普通链表的基础上,最后一个节点的下一个节点不再是 null,而是指向链表的第一个节点。 这样形成了一个环,使得链表能够被无限遍历。 这样,我们就可以在单向循环链表中从任意一个节点出发,不断地遍历下一个节点,直到回到起点。 二. 单项链表改造 1. 目的 阅读全文
posted @ 2024-01-02 09:41 Yaopengfei 阅读(74) 评论(1) 推荐(0) 编辑
摘要: 一. 图详解 1. 邻接矩阵 (1). 说明 邻接矩阵让每个节点和一个整数项关联,该整数作为数组的下标值。 我们用一个二维数组来表示顶点之间的连接。 二维数组[0][2] -> A -> C (2). 解析 在二维数组中,0表示没有连线,1表示有连线。 通过二维数组,我们可以很快的找到一个顶点和哪些 阅读全文
posted @ 2023-12-18 14:10 Yaopengfei 阅读(33) 评论(1) 推荐(0) 编辑
摘要: 一. 树详解 1. 树优点及横向比较 (1). 数组 (2). 链表 (3). 哈希表 (4). 树 2. 相关术语 ◼ 1.节点的度(Degree):节点的子树个数。 ◼ 2.树的度 (Degree) :树的所有节点中最大的度数。 ◼ 3.叶子节点(Leaf):度为0的节点。(也称为叶节点) ◼ 阅读全文
posted @ 2023-12-14 10:01 Yaopengfei 阅读(27) 评论(1) 推荐(0) 编辑
摘要: 一. 哈希表介绍 1. 什么是哈希表? 它的结构就是数组,但是它神奇的地方在于对数组下标值的一种变换,这种变换我们可以使用哈希函数,通过哈希函数可以获取到HashCode 哈希表的结构: [ [[key,value],[key,value],[key,value]], [[key,value],[k 阅读全文
posted @ 2023-12-06 08:47 Yaopengfei 阅读(169) 评论(1) 推荐(0) 编辑
摘要: 一. 时间复杂度 1. 现实案例 举个例子(现实的例子):在一个庞大的图书馆中,我们需要找一本书。 在图书已经按照某种方式摆好的情况下(数据结构是固定的) ◼ 方式一:顺序查找 一本本找,直到找到想要的书;(累死) ◼ 方式二:先找分类,分类中找这本书 先找到分类,在分类中再顺序或者某种方式查找; 阅读全文
posted @ 2023-12-03 07:28 Yaopengfei 阅读(41) 评论(1) 推荐(0) 编辑
摘要: 一. 链表详解 1. 对比数组 数组的创建通常需要申请一段连续的内存空间(一整块的内存),并且大小是固定的(大多数编程语言数组都是固定的),所以当当前数组不能满足容量需求时,需要扩容。 (一般情况下是申请一个更大的数组,比如2倍。 然后将原数组中的元素复制过去) 而且在数组开头或中间位置插入数据的成 阅读全文
posted @ 2023-11-16 08:30 Yaopengfei 阅读(24) 评论(1) 推荐(0) 编辑
摘要: 一. 队列详解 1. 什么是队列? 它是一种受限的线性表,先进先出(FIFO First In First Out) 受限之处在于它只允许在队列的前端(front)进行删除操作;而在队列的后端(rear)进行插入操作 2. 队列常见的操作 enqueue(ele) :向队列尾部添加一个(或多个)新的 阅读全文
posted @ 2023-11-09 09:01 Yaopengfei 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 一. 邂逅数据结构和算法 1. 编程的最终目的 所有的编程最终的目的都是为了处理数据 2. 什么是数据结构 数据结构是存储和组织数据的方式,常用的数据结构有:数组、链表、栈、队列、树、图。 3. 什么是算法 算法是解决问题的办法、逻辑步骤。 二. 线性结构-数组 1. 什么是线性结构 (1) 是由n 阅读全文
posted @ 2023-11-06 13:57 Yaopengfei 阅读(40) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2023-10-30 07:51 Yaopengfei 阅读(3) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2023-10-20 15:52 Yaopengfei 阅读(11) 评论(1) 推荐(0) 编辑
摘要: 一. 背景 1. 背景介绍 铁道部在线车票发售网站12306基本不存在大量图片、视频这些占带宽资源的东西,所面临的主要问题就是数据库的高并发量——用中国的人口基数来算,这是一个极为恐怖的并发量,在车票发售的高峰时间点,向12306发起的并发请求数量大得就像一场国家规模的DDOS攻击。 中国铁路客户服 阅读全文
posted @ 2023-09-18 09:39 Yaopengfei 阅读(309) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2023-09-11 09:49 Yaopengfei 阅读(0) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 24 下一页