1 wolf鬼刀

尚未进行身份认证

我要认证

明明已经知道结局,但是当结局正真来临时,还是会伤心欲绝

等级
TA的排名 9k+

摩尔投票法(力扣- -229. 求众数 II)

摩尔投票法(力扣- -229. 求众数 II)文章目录摩尔投票法(力扣- -229. 求众数 II)一、题目描述二、分析摩尔投票法总结三、代码一、题目描述二、分析这道题如果用O(logN)O(log N)O(logN)的空间复杂度来解决是非常简单的,但是题目要求:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。 这里介绍摩尔投票法摩尔投票法 摩尔投票法,解决的问题是如何在任意多的候选人中,选出票数超过一半的那个人。注意,是超出一半票数的那个人。假设投票是

2020-10-09 20:49:23

优化传输文件的性能- -零拷贝

优化传输文件的性能- -零拷贝文章目录优化传输文件的性能- -零拷贝一、为什么要有 DMA 技术?二、传统的文件传输有多糟糕?三、如何优化文件传输的性能?四、如何实现零拷贝?mmap + writesendfile五、PageCache 有什么作用?六、大文件传输用什么方式实现?七、总结磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存

2020-10-04 15:36:16

什么是线段树?

什么是线段树?文章目录什么是线段树?一、简介二、线段树的结构与建树如何存储这个线段树呢?三、区间查询那么如何判断两个区间是否有交集?四、单点修改五、区间修改、懒标记懒标记六、完整代码线段树节点的构造下传标记的函数区间修改的函数加入懒标记后的建树函数加入懒标记后的查询函数主函数中的调用七、区间合并操作与懒标记的运用八、权值线段树动态开点九、查找排名第k的数十、查询数 k 的排名一、简介 线段树是在算法竞赛中常用来维护区间信息的数据结构,同时,线段树的理解难度较树状数组低(当然是在理解递归的前提下)。

2020-10-04 14:51:31

力扣- -231. 2的幂

力扣- -231. 2的幂文章目录力扣- -231. 2的幂一、题目描述二、问题分析三、代码方法一:暴力统计方法二:位运算(获取二进制中最右边的 1)方法三:位运算(去除二进制中最右边的 1)看一道对位运算特别巧的简单题一、题目描述class Solution {public: bool isPowerOfTwo(int n) { }};二、问题分析 这道题的主要思想是数字n的特殊性 因为数字n是2的幂(注意是2的幂,并不是2的倍数),那么这道题就简

2020-10-03 22:11:56

HTTP3.0和QUIC协议那些事

HTTP3.0和QUIC协议那些事文章目录HTTP3.0和QUIC协议那些事一、HTTP2.0和HTTP3.01.1 HTTP2.0和TCP的爱恨纠葛1.2 谷歌为什么选择UDP1.3 QUIC协议和HTTP3.0二、QUIC详解2.1 队头阻塞问题2.2 0RTT 建链2.2.1 首次连接和非首次连接2.2.2 首次连接2.2.3 非首次连接2.3 前向安全问题2.4 前向纠错2.5 连接迁移2.6 改进的拥塞控制2.6.1 可插拔2.6.2单调递增的 Packet Number2.6.3 不允许 Re

2020-09-22 14:03:38

缓存系统中的三座大山

缓存系统中的三座大山文章目录缓存系统中的三座大山一、什么是缓存1.无处不在的缓存2.高并发系统中的缓存2.1 缓存系统的作用2.2 缓存系统访问流程二、缓存系统的三大问题1.1缓存雪崩问题1.2 缓存雪崩解决方案2.1缓存穿透问题2.2 缓存穿透解决方案3.1 缓存击穿问题3.2缓存击穿解决方案三、总结一、什么是缓存1.无处不在的缓存缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache在Linux中有TLB加速虚拟地址和物理地址的转换在浏览器有本地缓存、手机有本地缓存等。 可

2020-09-21 19:01:07

剑指 Offer 41. 数据流中的中位数

剑指 Offer 41. 数据流中的中位数文章目录剑指 Offer 41. 数据流中的中位数一、题目描述二、分析三、完整代码一、题目描述二、分析 一个直接的解法可以用一个数组记录所有addNum添加进来的数字,通过插入排序的逻辑保证数组中的元素有序,当调用findMedian方法时,可以通过数组索引直接计算中位数。但是用数组作为底层容器的问题也很明显,addNum搜索插入位置的时候可以用二分搜索算法,但是插入操作需要搬移数据,所以最坏时间复杂度为 O(N)。那换链表?链表插入元素

2020-09-21 17:42:18

差分数组

差分数组文章目录差分数组一、前缀和二、差分数组三、问题描述四、分析五、完整代码一、前缀和前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。 核心代码就是下面这段:class PrefixSum { // 前缀和数组 private int[] prefix; /* 输入一个数组,构造前缀和 */ public PrefixSum(int[] nums) { prefix = new int[nums.len

2020-09-09 15:24:50

力扣- -去除重复字母

力扣- -去除重复字母文章目录力扣- -去除重复字母一、题目描述二、分析三、代码一、题目描述二、分析 题目的要求总结出来有三点:要求一、要去重。要求二、去重字符串中的字符顺序不能打乱s中字符出现的相对顺序。要求三、在所有符合上一条要求的去重字符串中,字典序最小的作为最终结果。上述三条要求中,要求三可能有点难理解,举个例子:比如说输入字符串s = “babc”,去重且符合相对位置的字符串有两个,分别是"bac"和"abc",但是我们的算法得返回"abc",因为它的字

2020-09-04 21:52:52

力扣--让字符串成为回文串的最少插入次数

力扣–让字符串成为回文串的最少插入次数文章目录力扣--让字符串成为回文串的最少插入次数一、题目描述二、分析三、代码相关题目:腾讯–构造回文:腾讯–构造回文最长回文子串和回文链表:最长回文子串和回文链表美团/力扣(647)–回文字串:美团/力扣(647)–回文字串力扣- - 最短回文串(KMP算法):力扣- - 最短回文串(KMP算法)最长回文子序列:最长回文子序列一、题目描述二、分析首先,要找最少的插入次数,那肯定得穷举喽,如果我们用暴力算法穷举出所有插入

2020-09-02 12:15:47

力扣- - 最短回文串(KMP算法)

力扣- - 最短回文串(KMP算法)文章目录力扣- - 最短回文串(KMP算法)一、题目描述二、分析之KMP算法1.暴力法2.KMP算法3.next数组求法1:暴力查找最长的前后缀4.next数组求法25.完整KMP代码三、题目分析四、代码一、题目描述二、分析之KMP算法1.暴力法2.KMP算法3.next数组求法1:暴力查找最长的前后缀 vec

2020-08-29 21:28:15

力扣- -阶乘函数后K个零

力扣- -阶乘函数后K个零文章目录力扣- -阶乘函数后K个零一、172. 阶乘后的零二、分析三、代码四、阶乘函数后K个零五、分析六、完整代码一、172. 阶乘后的零二、分析 求n!中末尾0的个数: 0的来源 2 * 5 ,所以一对2和5即可产生一个0,所以0的个数即为min(阶乘中5的个数和2的个数) 又因为是2的倍数的数一定比是5的倍数的数多 所以2的个数一定>=5的个数 所以只需要统计 5 的个数了例如 5! = 1 * 2 * 3 * 4 * 5会产生3个2和1个

2020-08-29 14:36:44

力扣- -正则表达式匹配

力扣- -正则表达式匹配文章目录力扣- -正则表达式匹配一、题目描述二、分析方法一:Dp函数明确状态和选择确定状态转译方程确定base case完整代码方法二:Dp table明确状态和选择明确状态转移方程确定base case完整代码一、题目描述二、分析这两个通配符是最常用的,其中点号「.」可以匹配任意一个字符,星号「*」可以让之前的那个字符重复任意次数(包括 0 次)。比如说模式串".a * b"就可以匹配文本"zaaab",也可以匹配"cb";模式串"a..b"可以匹配文本"a

2020-08-29 12:53:32

MySQL三大日志及主从复制的原理

MySQL三大日志及主从复制的原理文章目录MySQL三大日志及主从复制的原理一、binlog1.概念2.分类3.binlog使用场景4.binlog刷盘时机5.binlog日志格式二、redo log1.为什么需要redo log2.redo log基本概念3.redo log记录形式4.redo log与binlog区别三、undo log四、主从复制的原理1.什么是主从复制?2.主从复制的作用3.主从复制的原理4.总结日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysq

2020-08-26 19:04:21

力扣--累加数

力扣–累加数文章目录力扣--累加数一、问题描述二、分析三、代码一、问题描述二、分析这道题第一眼看可能觉得比较简单,枚举前后3个位置,判断这3个位置的数字是否满足题目的要求(第三个数 = 前两个数之和)但是看到后面的用例就会发现问题:199100199==》这3个数不一定是1位数,可能是多位数,所以都需要进行枚举 定义i,j,k分别代表第一个数字、第二个数字和第三个数字的起始下标,这样好处在于计算各个字符串时都很方便。 第一个数字的起始下标一定是0,但是第二和第三个数字的起始下标不

2020-08-25 22:17:54

MySQL高级之查询优化(索引失效)

MySQL高级之查询优化(索引失效)文章目录MySQL高级之查询优化(索引失效)一、单表使用索引及常见的索引失效1.索引失效的案例2.建议二、关联查询优化三、子查询优化四、排序分组优化一、单表使用索引及常见的索引失效1.索引失效的案例2.建议二、关联查询优化三、子查询优化四、排序分组优化...

2020-08-20 22:45:12

MySQL高级之explain详解

MySQL高级之explain详解文章目录MySQL高级之explain详解一、expalin命令详解1.使用方式2.结果显示3.主要的字段信息4.作用二、id字段在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很

2020-08-20 11:52:59

几种常见的Web攻击

几种常见的Web攻击文章目录几种常见的Web攻击一、DoS攻击1.SYN洪水攻击2.IP欺骗3.Land攻击4.针对DoS攻击的防御二、CSRF攻击1. CSRF攻击的发生有三个必要条件:2.几种防护方法:三、XSS漏洞攻击1.非持久型XSS漏洞2.持久型XSS漏洞四、SQL注入1.SQL注入的危害2.SQL注入的方式3.防止SQL注入的解决方案一、DoS攻击 DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连

2020-08-17 17:21:03

旋转排序数组系列题详解

旋转排序数组系列题详解文章目录旋转排序数组系列题详解一、问题描述:旋转数组的最小数字二、分析:二分查找三、代码四、问题描述:寻找旋转排序数组中的最小值五、分析:二分搜索六、代码七、问题描述:寻找旋转排序数组中的最小值 II八、分析:二分查找九、代码十、问题描述:搜索旋转排序数组十一、分析:二分搜索十二、代码十三、问题描述:搜索旋转排序数组II十四、代码一、问题描述:旋转数组的最小数字二、分析:二分查找一个包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图: 其中横轴表示数组元

2020-08-14 22:10:15

旋转图像

旋转图像文章目录旋转图像一、题目描述分析方法一:旋转 + 翻转代码方法二:逐层逐位置偏移代码一、题目描述分析方法一:旋转 + 翻转 第一步以对角线为轴,翻转对角线两侧的元素 第二部以每行的中点为轴翻转左右两次的元素代码class Solution {public: void rotate(vector<vector<int>>& matrix) { //按对角线进行翻转 for(int i = 0;i <

2020-08-13 23:38:02

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)