跳跃表解析 写在前面跳表的应用很多 redis zset的底层数据结构的一种就是其应用面试被问到两次 一次不知道 一次没太讲清除 尴尬所以专门找了redis书里的跳表学以下主要基于Redis5设计与源码分析 这本书直接看书也可以 这篇博客是对书内容的一个解析算是我的笔记 是我对于书内容的理解 希望能帮到你里面有些图太丑 不要嫌弃 有些图可能因为github 加载会慢点关于java实现跳表可以看视频:https://www.bilibili.com/video/BV1Er4y1P7k1?from=sear
IO多路复用底层原理及源码解析 基本概念1. 关于linux文件描述符在Linux中,一切都是文件,除了文本文件、源文件、二进制文件等,一个硬件设备也可以被映射为一个虚拟的文件,称为设备文件。例如,stdin 称为标准输入文件,它对应的硬件设备一般是键盘,stdout 称为标准输出文件,它对应的硬件设备一般是显示器。对于所有的文件,都可以使用 read() 函数读取数据,使用 write() 函数写入数据。“一切都是文件”的思想极大地简化了程序员的理解和操作,使得对硬件设备的处理就像普通文件一样。所有在Linux中创建的文件都有一
JVM与JUC 之前面试总结的JUC和JVM相关脑图 备份JVMhttp://naotu.baidu.com/file/d495a092ea3157fc25abfca0899a470c?token=571a7ed63b53b82fJUChttp://naotu.baidu.com/file/708dfe0cfdce941b518c68c14ba0a628?token=07dd92eeb8c2e16f覆盖大多数面试点
记录 很简单的一个闹钟小项目样式:功能:按键介绍:选择星期 输入24小时制时间 选择铃声 点击确定即锁定选择 输入 订闹钟(星期默认星期一 铃声默认情景剧 安利下孟美岐版情景剧)点击重置可以重置选择与输入铃声响起时点击关闭闹钟可关闭铃声点击上传音乐 弹出上传界面 选择文件(暂只限mp3格式)进行上传各个功能实现原理:1.动态时间显示 用线程控制 每隔1秒获取一次当前时间2.星期与日...
java自学 学Java有一段时间了 算半自学 老九的课确实不错不过近期还发现了一个不错的java学习网站有教程 有项目 界面也挺简单明白站长也会进行答疑 总体还不错网站链接:https://how2j.cn/p/4724...
119 力扣杨辉三角 Ⅱ 1.模拟 动态规划118的状态转移公式 dp[i][j] = dp[i-1][j-1] + dp[i-1][j]可以看到可将[i-1],[i]省掉 只返回指定行// dp[i][j] = dp[i-1][j-1] + dp[i-1][j]vector<int> getRow(int rowIndex) { vector<int> a; ...
力扣 121 买卖股票的最佳时间 用了一种暴力算法 过于暴力 超时了class Solution {public: int maxProfit(vector<int>& prices) { //找最大 最小值 最小值下标在最大值下标之前 即将第一位最大拿出讨论即可 vector<int>::iterator it; ...
力扣 27 移除元素 与26相似 基本相同 只是由于26是数组之间元素比较 27是数组元素与传入参数比较 因此两指针起始位置不同 整体思路相同从不等方面思考(记录保留)i慢指针j快指针不等时两指针指向同一位置 两指针都移动相等时 快指针移动 慢指针不动 待到再相等时快指针位置元素覆盖慢指针位置元素,将相等项删除即可代码class Solution {public: int removeEleme...
力扣 26 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...
力扣 876 链表中间结点 一开始延续回文链表向量数组的写法 只返回了结点值 且忘记向量可以为结点类型 导致出错本题其实很简单 想的有点复杂了1.向量数组class Solution {public: ListNode* middleNode(ListNode* head) { vector<ListNode*> a= {head}; while(a.back()...
力扣 237 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: ...