自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 C语言的数据结构:图的操作

注意:在遍历的过程中,可能会出现回路已经访问过的节点还要重新访问一次当从A开始访问时,先访问A,然后C,这时候由于C和D没有连接,无法直接到达D,需要再回到A,此时A就被多次访问了。可以创建一个数组用于保存访问过的顶点。

2024-07-02 15:36:52 1123 1

原创 C语言的数据结构:图的基本概念

之前学过了其它的数据结构,如:集合集合 —— 数据元素属于一个集合。线型结构线型结构 —— 一个对一个,如线性表、栈、队列,每一个节点和其它节点之间的关系一个对一个一个对一个。树型结构树型结构 —— 一个对多个,如树。现在要接触一下图这个结构了,图是多个对多个的结构,其没有初始结点,也没有最终结点。每一个节点都称为顶点。图图——因为图是若干个顶点,顶点之间相互连接,没有先后顺序,所以图没有顺序存储结构,但可以借助二维数组来表示元素间的关系(邻接矩阵邻接矩阵)。

2024-07-02 10:51:14 986

原创 C语言的数据结构:树与二叉树(哈夫曼树篇)

上篇讲完了二叉树,二叉树的查找性能要比树好很多,如平衡二叉树保证左右两边节点层级相差不会大于1,其查找的时间复杂度仅为 𝑙𝑜𝑔2𝑛log 2​ n,在两边层级相同时,其查找速度接近于二分查找。1w条数据,平衡二叉树的查找最差情况下仅有14次,而普通树(也就是多叉树),如果每层都有100个节点,第二层可以接近1w(9999)条数据,其查找的时间复杂度也高的多

2024-06-29 22:07:11 923

原创 语言的数据结构:树与二叉树(二叉树篇)

上文说到了树,有人认为二叉树是树的每一个分支都有两个子节点。其实这也对。但二叉树在此基础上还做了限制。比如区别了左子树与右子树。也就是说,当二叉树的根只有一个孩子时,也需要知道这个是左孩子还是右孩子。就是因为这个原因,让二叉树的性能相对于树有了明显的提高。也让二叉树成了一个全新的概念,而不是树的一个特别情况而已。

2024-06-25 22:21:57 792

原创 C语言的数据结构:树与二叉树(树篇)

之前所学到的数据结构都是线性结构特征,所谓线性就是在结构上,将节点连接起来时,像一条线一样。如链表则是上一个节点包含下一个节点地址的指针,这样依次下去。而串、队列、栈则实现方式都依赖于链表或顺序表而实现,自然也是线性结构了。在我们的工作当中,树结构已经不陌生了,往往是一个数组,其中每条数据都是根节点,有一个id属性,标明其的唯一性。而每条数据有一个children属性,是一个数组,它包含着若干个子节点,子节点有一个 parentId,指向其父节点。就这样依次递归下去。

2024-06-23 18:04:51 532

原创 C语言的数据结构:串、数组、广义表

数组是一个有序集合,其成员类型相同,如int、char、double等等。在逻辑存储中,其每个元素都是相邻的,通过索引定位成员。在计算机内存中,数组的每个元素依然相邻。获取成员位置则通过索引*成员大小而得到。常用数组结构可以分为一维数组、二维数组、三维数组。一维数组: [1,2,3]二维数组:[ [1,2,3] , [4,5,6] , [7,8,9] ]三维数组:[不同维数的数组也可以实现转换,如一维数组 [1,2,3,4 ,5,6,7,8]。如果我们以4个元素为一个集合,则就相等于二维数组。

2024-06-12 12:30:09 871

原创 C语言数据结构:栈与队列

栈与队列一般是一起讲的,它们都是通过数组实现的(线性表中的顺序表),不同的只是限制了插入和删除的位置。当然栈的插入与删除称为入栈和出栈,队列的称为入队和出队。之所以在数组的基础上实现这两个数据结构。是因为它们有特殊的应用场景,可以更好地完成任务。

2024-06-06 12:33:59 602

原创 【Leetcode 876 】链表的中间结点——快慢指针(单节点与双节点)

给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。[3,4,5]链表只有一个中间结点,值为 3。[4,5,6]该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

2024-06-02 05:47:49 455

原创 【Leetcode 706 】设计哈希映射——数组嵌套链表(限制哈希Key)

/ 返回 -1(未找到),myHashMap 现在为 [[1,1], [2,2]]// myHashMap 现在为 [[1,1], [2,1]](更新已有的值)// 返回 1 ,myHashMap 现在为 [[1,1], [2,2]]// 返回 1 ,myHashMap 现在为 [[1,1], [2,1]]// 返回 -1(未找到),myHashMap 现在为 [[1,1]]// myHashMap 现在为 [[1,1], [2,2]]// myHashMap 现在为 [[1,1]]

2024-06-01 08:18:43 394

原创 【Leetcode 705 】设计哈希集合——数组嵌套链表(限制哈希Key)

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。truefalse[1, 105]空间复杂度:O(1)

2024-05-31 06:17:01 790

原创 【Leetcode 206】 反转链表——此递归相当妙啊

请你反转链表,并返回反转后的链表。

2024-05-29 12:15:29 607

原创 【leetcode 203】 移除链表元素

请你删除链表中所有满足。给你一个链表的头节点。

2024-05-28 18:55:36 302

原创 【Leetcode 160】环形链表——双指针,细节讲解

给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。-1。

2024-05-28 07:29:48 387

原创 【leetcode 141】环形链表——快慢指针(龟兔赛跑)

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。

2024-05-28 06:12:06 678

原创 【leetcode 83】 删除排序链表中的重复元素——每一行代码都有注解

【代码】【leetcode 83】 删除排序链表中的重复元素——每一行代码都有注解。

2024-05-27 18:22:39 251

原创 【leetcode 28】. 找出字符串中第一个匹配项的下标——一行一行代码解释KMP算法

如果想了解KMP算法,我还写了 一篇 篇幅更大的KMP算法,里面更加详细的推理的KMP算法的理论过程。

2024-05-25 08:27:47 329

原创 vue3 中的 v-bind ,竟然有这么多用处 快来看看你用过几种吧

布尔型的属性 用 true / false 值来决定 属性 是否存在于该元素上。这个div就会使用到 divColor 的颜色值,并在 值改变时,响应式的改变。中的变量,用于动态修改样式(这只是其中一种方法),这时可以像下面这样使用。在我们工作中,经常要根据自己的需要,对组件进行封装。这时候,你在用组件时,在组件上设置的属性和事件将直接继承到。这种功能在父子组件传递props时,也很适用。的dialog组件。此时上面的这种绑定方式,会将。的属性和事件全部都写一遍。上,便可以很流畅的使用。

2024-05-23 07:33:10 616

原创 【字符串常用算法】——KMP算法(你别闲烦 超详细,给你解释明白)

网上看了好多的文章讲解kmp算法,看着总是有些懵,然后自己就开始写了这个尽量详细讲解的,去解答自己在学习中遇到的困惑,也希望可以帮助到你们,其实语言无所谓,主要是思想

2024-05-23 07:26:34 1328

原创 【leetcode 27】移除元素——两种解法

试用于 nums 中 等于val的数比较多的情况。试用于 nums 中 等于val的数比较少的情况。

2024-05-16 07:35:54 325

原创 【leetcode 25】 K 个一组翻转链表

【代码】【leetcode 25】 K 个一组翻转链表。

2024-05-15 21:32:43 319

原创 【leetcode 24】 两两交换链表中的节点

【代码】【leetcode 24】 两两交换链表中的节点。

2024-05-14 23:00:55 206

原创 【leetCode 23】 合并 K 个升序链表(分治算法)

【代码】【leetCode 23】 合并 K 个升序链表(分治算法)

2024-05-14 12:21:42 437

原创 【leetCode 21】 括号生成

【代码】【leetCode 21】 括号生成。

2024-05-13 07:31:16 375

原创 C语言数据结构:线性表

线性表的顺序存储结构称为顺序表,之所以是顺序存储,是因为其逻辑地址上相邻的元素在物理地址上也相邻。由于其物理地址与逻辑地址相对应,所以每个元素上只用存储元素的值,查找元素可以通过索引*数据占用内存空间大小计算得到。可以用数组来表示。由于int 类型一般情况下占用内存为 4 字节,在内存地址中它们的分配空间是相临的,所以上面的3个物理地址(16进制)每个相差为4。// sizeof 是一个运算符,它用于计算其操作数的大小(以字节为单位)

2024-05-12 16:53:40 1379

原创 【leetCode 21】 合并两个有序链表

【代码】【leetCode 21】 合并两个有序链表。

2024-05-08 22:20:16 298

原创 【leetCode 20】有效的括号——极致优化

【leetCode 20】有效的括号——极致优化

2024-05-07 22:46:02 565

原创 19. leetCode删除链表的倒数第 N 个结点

【代码】19. leetCode删除链表的倒数第 N 个结点。

2024-05-06 17:20:23 573

原创 18.leetCode 四数之和——极致优化

击败85.10%使用 TypeScript 的用户。击败79.81%使用 TypeScript 的用户。

2024-05-04 09:10:30 390 3

原创 16. 最接近的三数之和——极致优化

击败89.84%使用 TypeScript 的用户。击败81.28%使用 TypeScript 的用户。

2024-05-01 11:04:06 489

原创 15. 三数之和 ,比较详细的解释

【代码】15. 三数之和 ,比较详细的解释。

2024-04-29 18:25:34 216

原创 leetCode11. 盛最多水的容器——终于让我有了算法的思维

前言前面在刷leetCode时,更多的还是用以前的思维方式去解决问题。当然了,我也不知道以前的的思维方式叫什么名字,反正不好,让我写出一些糟糕的代码。而就是这个题目,在我的不断思考下,竟有了双指针的影子。题目简介给定一个长度为 n的整数数组 height。有 n条垂线,第 i条线的两个端点是 (i, 0)和 (i, height[i])。找出其中的两条线,使得它们与 x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。

2024-04-27 18:21:48 517

原创 6【Z字型变换】超详细的leetcode题目,把这些代码给你说明白

Z字型变换难度。

2024-04-22 14:14:58 996 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除