首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
wangwei_hz
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
10
文章 9
沸点 1
赞
10
返回
|
搜索文章
最新
热门
数据结构与算法 | 队列的实现及其应用
前面,我们学习了 栈的实现及应用 ,本篇我们来学习一下最后一种线性表——队列。 队列是我们日常开发中经常会用到的一种数据结构,我们经常使用队列进行异步处理、系统解耦、数据同步、流量削峰、缓冲、限流等。例如,不是所有的业务都必须实时处理、不是所有的请求都必须实时反馈结果给用户、不…
数据结构与算法 | 回文链表检测
时间复杂度为O(n),空间复杂度为O(1). 直接将链表进行 反转 ,然后将新的反转链表与原链表进行比较,这种思路最为简单粗暴。 此种解法的时间复杂度为O(n),空间复杂度为O(n). 为了降低空间复杂度到O(1),我们可以只对链表的后半部分直接反转,然后将反转后的后半部分与前…
数据结构与算法 | 如何实现LRU缓存淘汰算法
前面,我们学习了 链表 的实现,今天我们来学习链表的一个经典的应用场景——LRU淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出…
数据结构与算法 | Leetcode 876. middle-of-the-linked-list
前面,我们实现了 删除单链表倒数第N个节点 操作,本篇来聊聊,如何求一个链表的中间节点。 给定一个非空的单链表,要求返回它的中间节点,如果中间节点有两个则返回第二个。 第一种解法的思路比较容易想得到,先计算出链表的总长度,再计算出中间节点的下标,然后得遍历得到对应的节点即可。 …
数据结构与算法 | Leetcode 19. Remove Nth Node From End of List
前面,我们实现了 两个有序链表的合并 操作,本篇来聊聊,如何删除一个链表的倒数第N个节点。 给定一个单链表,如: 1->2->3->4->5,要求删除倒数第N个节点,假设 N = 2,并返回头节点。 则返回结果:1->2->3->5 . 这一题的难度标记为 medium,解法一…
数据结构与算法 | LeetCode 224. Basic Calculator
前面,我们学习了有关的 栈的实现及其应用 ,今天我们基于栈,来实现一个简单的计算器功能。 实现一个能够对简单的表达式进行计算的基础计算器。 表达式字符串包含括号 ( 、),加号(+),减号(-),非负整数以及空格(' ')。 下面是我根据上面思路,写出来的第一版实现,相比于网上…
数据结构与算法 | 栈的实现及应用
前面,我们实现了两种常见的线性表 —— 顺序表 和 链表 ,本篇我们来介绍另外一种常用的线性表 —— 栈。 线性表中的一种特殊数据结构,数据只能从固定的一端插入数据或删除数据,另一端是封死的。 采用数组实现,数据在物理结构上保持连续性。 出栈和入栈的操作,只涉及一两个临时变量的…
数据结构与算法 | Leetcode 21:Merge Two Sorted Lists
前面,我们实现了链表的 环检测 操作,本篇来聊聊,如何合并两个有序链表。 定义一个临时虚假的Head节点,再创建一个指向tail的指针,以便于在尾部添加节点。 对ListNode1和ListNode2同时进行遍历,比较每次取出来的节点大小,并绑定到前面tail指针上去,直到最终…
数据结构与算法 | Leetcode 141:Linked List Cycle
前面,我们实现了链表的 反转 操作,本篇来聊聊,如何检测单链表中的环。 定义一个Map,当循环遍历Linked List时,依次将Node放入Map中,等到循环到下一轮时,检查Node是否存在于Map中,若存在则表示有环存在。 从Linked List的Head节点出发,我们定…
数据结构与算法 | Leetcode 206:Reverse Linked List
前面我们实现了几种常见的 链表 ,接下来,我们来聊聊如何实现 单链表 的反转。 我们可以通过循环遍历和递归这两种方式来实现链表的反转。 定义三个指针,分别为prev、curr、next,然后遍历所有node结点,并移动这三个指针,改变curr结点的next指向,指向prev结点…
下一页
个人成就
文章被点赞
172
文章被阅读
28,454
掘力值
960
关注了
8
关注者
56
收藏集
2
关注标签
93
加入于
2016-11-24