- 博客(291)
- 资源 (15)
- 收藏
- 关注
原创 单调栈应用介绍
栈(Stack)是另一种操作受限的线性表,只允许元素从栈的顶端进顶端出,具有后进先出(LIFO)的特性。但单调栈(Monotonic Stack)是一种特殊的栈,在满足栈特性的基础上,栈内元素从栈底到栈顶具有单调性。如果栈底到栈顶元素是单调递减,则称为单调递减栈;如果栈底到栈顶元素是单调递增,则称为单调递增栈。新元素加入栈顶时,需要进行单调性维护,弹出不满足单调性的栈顶元素当前解计算是在出栈的时候进行的。
2024-10-28 16:12:02
1133
原创 单调队列应用介绍
队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,具有先进先出(FIFO)的特性。但**单调队列(Monotonic Queue)**是一种特殊的队列,它首先是一个双端队列(可在队头/队尾进行读写),其次队列内部的元素单调递增/递减。当前最优解在队头插入元素都是从队尾插入会剔除队尾不符合单调性的元素(类似栈的出栈动作)会弹出队头不满足区间限制的元素(单调队列解决的问题一般都带有区间限制)因此,可以把 单调队列看作是滑动窗口和单调栈的组合体。
2024-10-01 16:00:32
1227
2
原创 [Mysql]锁总结
Mysql InnoDB支持多种类型的锁,从不同的维度来看,有不同的锁分类。对于锁定读取、更新、删除等语句,通常是在扫描过程中对索引记录进行加锁。Innodb不关心Where条件排除哪些记录,只关心其扫描的索引范围。
2024-09-28 11:04:04
1160
原创 Protocol Buffer学习
日常工作中,虽然经常使用PB协议作为通信协议,也经常听说PB协议序列化/反序列化比JSON/XML更小更快,但对其内部原理不甚了解。正好这个周末有时间去深入学习PB协议的编解码,学习完之后不得不佩服谷歌大佬的牛逼,然后就有了此文。本文主要介绍PB协议序列化和反序列化,着重讲解了Varint和ZigZag编解码。
2022-03-20 19:36:11
1231
1
原创 Mysql系列-Redo log日志
在Mysql Innodb中,Redo log是非常重要的事务日志。本文将带你了解Redo log是什么、Redo log组提交以及Redo log的刷盘机制等。
2021-05-30 07:35:06
566
原创 Redis学习总结 -- 主从复制
Redis主从复制进一步提高了数据安全性,也是Redis服务高可用的基础。在本文中,将一起学习Redis主从复制过程,并了解其中可能存在的问题,知其然知其所以然。
2020-02-02 19:57:04
300
原创 Redis学习总结 -- 持久化
持久化是Redis一项重要的功能,可以保证在异常情况下仅仅只有少量数据丢失。Redis的持久化方案有RDB和AOF,两者各有千秋。本文主要讨论RDB和AOF的实现原理与各自的优缺点。
2020-01-18 17:50:51
250
原创 LeetCode 671. Second Minimum Node In a Binary Tree
Given a non-empty special binary tree consisting of nodes with the non-negative value, where each node in this tree has exactly two or zero sub-node. If the node has two sub-nodes, then this node's va...
2020-01-16 23:55:42
283
原创 Redis学习总结 -- ziplist
ziplist在Redis中使用非常广泛,List、Ordered Set、Hash中都可以看到ziplist的使用。ziplist本质上使用一块内存实现了双向链表,相比传统的双向链表,它更好的利用了“局部性原理”以及产生更少的内存碎片,因此ziplist的内存使用效率更高,性能更好。此外,在小整数(0~12)的存储上,ziplist会更加节省内存(后面会进行具体分析)。然而,ziplist在插...
2020-01-16 09:50:57
452
原创 LeetCode 1287. Element Appearing More Than 25% In Sorted Array
Given an integer array sorted in non-decreasing order, there is exactly one integer in the array that occurs more than 25% of the time.Return that integer.给一个非降序排列的整型数组,只存在一个整数,要求:该整数出现次数超过25%。最后结果...
2020-01-13 23:44:51
304
原创 Redis学习总结 -- SkipList
SkipListSkipList是什么?SkipList是一种随机化的数据结构,大多数情况下,插入、删除、查找的复杂度均为O(logN)(最坏情况下为O(N))。因为SkipList的性能可以和红黑树媲美,并且实现和维护简单,所以常常有一些项目会使用SkipList替代红黑树,比如LevelDB、Redis的Ordered Set。目前K-V数据结构常见的有Hash、红黑树、和SkipLi...
2020-01-11 16:16:00
302
原创 Redis学习总结- 内部数据结构
对于有一定用户量级的互联网服务,缓存往往是提升系统性能的有效手段。缓存虽好,但在使用中也有很多坑需要注意。在缓存一览一文中,对缓存读写过程中可能碰到的问题进行分析,并给出相应的解决方案。在业务开发中,往往并不需要自研一套缓存系统,而是结合自身业务特点选择目前成熟的缓存系统。Redis和Memcache是目前用的比较多的两大开源缓存框架(mongodb是非关系型文档数据库,并不是缓存框架),下面就...
2020-01-08 22:10:00
227
转载 Qt多线程学习
QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程类Qt 包含下面一些线程相关的类...
2020-01-08 21:39:52
252
转载 高性能后台服务器架构设计
转载自:http://blog.sina.com.cn/s/blog_3fba24680102vpvx.html如何设计高性能的大型网站系统?在移动互联网时代,客户端应用开发本身,并不是体验的决胜之处,真正对团队挑战的地方,还在于后端,无论是承压能力,还是安全性等方面,如果这些地方过不了关,整个应用的基础是不扎实的。提高服务器性能最简单粗暴的方式,就是增加机器和升级硬件...
2020-01-08 21:30:49
459
原创 缓存一览
在系统性能优化中,缓存是很重要的技术手段。通过将花费了大量资源或时间而得到的数据缓存起来的方式,来达到提高系统性能的目的。缓存可以分为本地缓存和分布式缓存,在本文中,我们主要讨论的是分布式缓存。缓存,一方面增加了成本,另一方面也增加了系统设计复杂度。在系统设计之初,往往并不需要缓存,而是随着系统规模变大,缓存才会被引入进来以提升系统性能。缓存虽然看起来很简单,但是用起来却并没有想象中的那么...
2020-01-06 00:31:34
587
原创 数据库索引总结
在业务开发过程中,Mysql是我们经常选择的数据存储方案,而索引又是Mysql中非常重要的内容。那么索引是什么?索引为什么会提升查询性能,反而又能影响更新性能呢?到底有没有必要建索引?索引使用过程需要注意哪些?
2020-01-02 00:03:18
595
转载 Go性能优化小结
基于原文Go性能优化小结整理内存优化小对象合并成结构体一次分配,减少内存分配次数Go runtime底层也采用内存池,但每个span大小为4k,同时维护一个cache。cache有一个0到n的list数组,list数组的每个单元挂载的是一个链表,链表的每个节点就是一块可用的内存,同一链表中的所有节点内存块都是大小相等的;但是不同链表的内存大小是不等的,也就是说list数组的一个单元存储的...
2019-12-21 15:44:29
305
转载 java项目中的classpath到底是什么
在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,...
2019-07-29 10:59:46
727
转载 epoll机制:epoll_create、epoll_ctl、epoll_wait、close
在Linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,linux/posix_types.h头文件有这样的声明:#define__FD_S
2017-05-16 23:32:34
432
转载 js中几种实用的跨域方法原理详解
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。下表给出了相对http://store.company.com/dir/page.html同源检测的结果:要解决跨域的问题,我们可以使用以下几种方法:一、通过jsonp
2017-05-12 09:00:25
760
转载 跨域资源共享 CORS 详解
一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器
2017-05-12 08:59:28
434
转载 vmstat含义说明
Usage:vmstat [options] [delay [count]]OPTIONS delay The delay between updates in seconds. If no delay is specified, only one report is printed with the average values since boot.
2017-05-04 20:20:04
865
转载 网络编程细节总结
TCP_NODELAY和TCP_CORK TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参看IE
2017-05-03 21:04:25
407
转载 高性能后台服务器架构设计
转载自:http://blog.sina.com.cn/s/blog_3fba24680102vpvx.html如何设计高性能的大型网站系统?在移动互联网时代,客户端应用开发本身,并不是体验的决胜之处,真正对团队挑战的地方,还在于后端,无论是承压能力,还是安全性等方面,如果这些地方过不了关,整个应用的基础是不扎实的。 提高服务器性能最简单粗暴的方式,就是增加机器和升级硬
2017-02-09 10:58:20
1955
原创 shell变量替换总结
Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换条件放在{}中.(1) ${value:-word} 当变量未定义或者值为空时,返回值为word的内容,否则返回变量的值.(2) ${value:=word} 与前者类似,只是若变量未定义或者值为空时,在返回word的值的同时将word赋值给value(3) ${value:
2017-01-15 11:47:00
1070
转载 Bash One-Liners Explained 译文(三)(转载自团子的小窝)
这是 Bash One-Liners Explained 系列的第三篇文章。在这一篇里,我会给大家介绍重定向相关的内容。我会选择用最合适的 Bash 方法,各种常见的语法和技巧,向各位阐明如何用 Bash 内置的命令和 Bash 编程语言来完成各式各样的任务。重定向其实是通过操作文件描述符来完成的,这样会更容易理解。当 Bash 启动时,会自动创建三个标准的文件描述符,它们分别是 st
2017-01-15 10:41:58
486
转载 脚本编程 Bash One-Liners Explained 译文(二)(转载自团子的小窝)
这是 Bash One-Liners Explained 系列的第二篇文章。在这一篇里,我会给你们介绍如何用 Bash 来完成各种各样的字符串操作。我会选择用最合适的 Bash 方法,各种常见的语法和技巧,向各位阐明如何用 Bash 内置的命令和 Bash 编程语言来完成各式各样的任务。1. 生成从 a 到 z 的字母表$ echo {a..z}这一行命令用到了括号展开(B
2017-01-15 10:28:52
510
qt编写的加密解密程序(linux系统专用)配置密码见说明
2010-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人