自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

遍地跑小鸡的博客

一个菜鸡的自白

  • 博客(212)
  • 收藏
  • 关注

原创 【经典题目分析】数组分割问题

这个问题其实可以被看做是上一个问题的子问题,但是也可以被简化为其中一个数组能够正好凑到target。因此问题可以被化简为背包问题求解。把一个数组,拆分成K个大小一样的子数组。方法可以是状态枚举,或者dfs。

2023-07-04 23:21:59 229

原创 【每日一题】23年4月

比较有思维量的题目。首先我们需要思考下最终的结果是处于什么区间上的,也就是我们需要选在一个长度为 k 的区间最后将所有的石子搬运到这个区间上。另外我们还需要思考,如何实现最大和最小的移动。

2023-05-03 23:10:02 574

原创 【每日一题】最小的必要团队(状态压缩DP)

对于循环方案,本题内外循环的顺序可以互换,一个是枚举压缩状态,一个是枚举people。对于要求解的具体方案,有两个思路,一个维护一个vector每次添加进去正确的,另外一个就是维护一个类似 指引线索 的数组。追踪的方法里,dp[i] 表示的是最佳的方案解,不追踪的方法里,dp[i]表示最佳的方案下,实际的方案。如果将问题尽可能的抽象出来,其实就是这个并集给出了一个提示,我们可以当成一个非常典型的状态压缩dp。容易想到的方法是类似与贪心的思路,维护一个最多的,被需要的技能的people,每次加入一个。

2023-04-08 15:35:16 403

原创 【周赛刷题】平衡树+图中最短环

2612. 最少翻转操作数(平衡树)题目的难度有一部分在于数学推导。对于某个点 iii 进行反转是有一个范围的,这个范围需要考虑到边界的情况。可以的得到的一个结论是。对于窗口反转,KaTeX parse error: Expected group after '^' at position 4: i+i^̲' = R+L。并且在c++中可以用到有序set的一些特性的,在实现上是一个红黑树。比如我们可以使用upper_bound() 和 lower_bound()。这两者返回的都是迭代器,其中lowe

2023-04-03 22:25:14 285

原创 【系统设计】你管这破玩意儿叫负载均衡?

文章目录What and Why七层负载均衡Nginx初入江湖:加一层Nginx小试牛刀:动静分离CDN瓶颈分析:socket连接池四层负载均衡LVSLVS的工作原理What and Why负载均衡和反向代理其实是非常融合的概念。在后端的设计,为了提高系统的可用性,我们往往会使用多个服务器实例给 client 提供服务,但是这些对于客户端是不应该有感知的。也就是说客户端在发送请求的时候,是通过一个网址,网址在进行DNS的解析以后会被发送到一个固定的IP地址上(先不考虑DNS的路由选择)。反向代理的目的

2021-10-08 17:12:29 1516

原创 【专题讲解】序列DP

文章目录LIS最长递增子序列的长度最长递增子序列的个数354. 俄罗斯套娃信封问题编辑距离打家劫舍类740. 删除并获得点数446. 等差数列划分 II - 子序列什么是序列DP序列dp是一类最长,最多的子序列的相关问题。 状态转移方程中 dp[i] 表示前i个元素a [0],a [1],…a [i-1]的某种性质, 坐标型 dp 状态转移方程中f [i]表示以元素a [i]结尾的某种性质。LIS最长递增子序列的长度最长递增子序列的个数class Solution { public

2021-10-05 11:34:17 1096

原创 【每日一题】 1912. 设计电影租借系统(数据结构设计)、查询差绝对值的最小值 H(前缀和,绝对值问题)、 最大子序列交替和 (dp, 最后一个元

文章目录1912. 设计电影租借系统 H(数据结构设计)1906. 查询差绝对值的最小值 H(前缀和,绝对值问题)1911. 最大子序列交替和 M (dp, 最后一个元素的操作)1912. 设计电影租借系统 H(数据结构设计)设计类的题目,需要考虑如何合理的运用数据结构。系统的功能要求可以分为两个部分,一个是要求按照给出的优先级返回对应的内容,一个是两个无返回值的操作,借出和还回。很明显这里是需要维护多个优先队列来实现给定优先级的对应内容的。比较难的点在于,如何处理借出的书籍和还回来的书籍。方案

2021-10-04 18:21:03 433

原创 【每日一题】只有两个键的键盘(dp、数学), LIS问题变种:最长递增子序列的个数(dp+二分 nlogn)

文章目录一道dp的题目,但是美妙之处在于这道题有数学解法。首先对于dp的思路,dp[i]表示 i 个字符时候的最小次数,dp[i] = dp[i/j]+j 得到转移方程。一个小优化在于,因为是找的因子,i/j * j = i 因此我们枚举到i\sqrt{i}i​就可以了。更为巧妙的数学解法是,进行拆分的时候肯定 a1*a2*a3 = n 一定是要找到因子的。而实际的代价是 a1+a2+a3 考虑到a1*a2>=a1+a2。因此,我们其实找到全部质因子就可以class Solution {

2021-09-20 23:06:36 247

原创 【Redis】探讨Redis分布式锁的正确使用姿势

文章目录什么是分布式方案一:使用原子的`setnx`getset指令方案使用自带原子命令方案二:使用Redisson框架方案三:集群模式下的分布式锁,RedLock分布式锁的其他可能:基于ZooKeeper的实现方式什么是分布式分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。一个好的分布式锁,需要有一下的要求:「互斥性」: 任意时刻,只有一个客户端能持有锁。「锁超时释放

2021-09-14 21:06:49 144

原创 【好文分享】 淘宝服务端高并发分布式架构演进之路

文章目录概述基本概念架构演进单机架构沙滩区:缓存+分布式思想+多点容灾策略第一次演进:Tomcat与数据库分开部署第二次演进:引入本地缓存和分布式缓存第三次演进:引入反向代理实现负载均衡第四次演进:数据库读写分离第五次演进:数据库按业务分库第六次演进:把大表拆分为小表深水区:更高的链接数量第七次演进:使用LVS或F5来使多个Nginx负载均衡第八次演进:通过DNS轮询实现机房间的负载均衡第九次演进:引入NoSQL数据库和搜索引擎等技术海底区:代码架构的设计与解耦思想第十次演进:大应用拆分为小应用第十一次演进

2021-09-14 19:46:36 301

原创 【每日一题】按权重生成随机数(二分+随机数)、不含连续1的非负整数(数位DP)、单词搜索(字典树)

文章目录528. 按权重随机选择528. 按权重随机选择题目有点考察设计的思路的问题但是核心还是在于如何实现映射,也就是实现按照给定概率的随机分布。这里采用了类似几何概率的思想,利用前缀数组容易得到几何的概率,然后我们直需要在区间内去随机生成,就可以保证了服从给定的概率分布。然后利用二分查找可以找到小于这个数字的最大边界。比如[1, 3] 就会presum = [1, 4]。那当index= 3 的时候就需要返回2,其实就是target>nums[mid]时候需要left = mid+1;而

2021-08-31 23:12:20 145

原创 你需要知道的InnoDB引擎100问

Innodb读书笔记文章目录第一章 体系结构与存储引擎第二章 InnoDB引擎第五章 索引与算法第六章 锁第七章 事务第一章 体系结构与存储引擎介绍Innodb的存储引擎InnoDB:支持事务,主要是面向在线事务处理(online transaction processing OLTP 对应的还有OLAP, online analytical processing 在线分析处理 更多用在数仓上,需要负载的sql语句。)的应用。 InnnDB通过MVCC来获得高并发性,实现了sql的四种隔.

2021-07-11 00:07:34 159 1

原创 【每日一题】leetcode杂题宣讲

文章目录879. 盈利计划879. 盈利计划可以看出来是一个dp的问题,并且给出了数据范围是100左右,因此可以猜到是O(n3)O(n^3)O(n3)的复杂度的问题。但是这个问题的特点在于,是让你返回结果大于某个值的方案数量。对于背包问题,有一种典型的问题是给定一个盈利,然后我们可以计算得到这个盈利的最大值。比如我们可以先问得到最大的收益是多少,然后再follow up得到最大收益的方案数量是多少。对于这个题目,我们要求的大于某个值的方案数量,这就需要我们重新设计dp了。这里有一个挺巧妙的设计思路

2021-06-09 20:39:39 175 1

原创 【每日一题】1月每日刷题总结(并查集)

文章目录605. 种花问题 (贪心)239. 滑动窗口最大值 模板题 单调栈86. 分隔链表399. 除法求值 (模板题 并查集)1202. 交换字符串中的元素 M (并查集,连通元素有序性)1203. 项目管理 H(多层次拓扑排序)803. 打砖块 H (反向并查集)947. 移除最多的同行或同列石头 H (二维并查集合并)其他题目主要是思路605. 种花问题 (贪心)虽然是贪心,但是这题目处理贪心的思路是我没有想到的。这个题目首先是找到了一个规律,对于没有种花的一段区域,左端点是lll, 右端点

2021-06-09 20:17:17 339

原创 【系统设计】从服务到架构

新的系列,参考了九章算法的系统设计讲解系统设计面试的规范4S分析法系统设计——推特设计之信息流 newsfeedstorage存储-PUll model(下拉)storage存储-PUSH model(发送)模型对比升级明星效应关注与取关存储点赞设计用户系统——理解数据库和缓存不同的QPS对存储系统的影响用户系统的特点好友关系存储防止单点失效(切片,备份)一致性哈希算法备份与复制系统设计————设计短网址系统短网址算法优化(如何加速).

2021-06-04 22:05:08 163

原创 【读书笔记】redis核心技术与实战(一)

从极客时间的redis核心技术实战说起,整理相关的读书笔记。归纳redis的知识点。文章目录开篇词 这样学Redis,才能技高一筹01 | 基本架构:一个键值数据库包含什么?开篇词 这样学Redis,才能技高一筹redis遇到的坑可能主要存在与四个方面:CPU使用上的坑,例如数据结构的复杂度、跨 CPU 核的访问;内存使用上的“坑”,例如主从同步和 AOF 的内存竞争;存储持久化上的“坑”,例如在 SSD 上做快照的性能抖动;网络通信上的“坑”,例如多实例时的异常网络丢包。为了学习r.

2021-05-17 11:26:33 1247 1

原创 【春招笔试】杂题选讲

开始春招寻找实习的过程中,遇到了很多场笔试。以赛代练,总结在笔试中经常出现的题目。文章目录招行Fintech笔试 4.29训练营分组 (dp思路+二分加速)欢送回家 (dp,枚举最后一个选择的切分位置)招行Fintech笔试 4.29训练营分组 (dp思路+二分加速)dp是类似于打家劫舍的思路,维护了区间的最值,转移方程是考虑是否选取当前点。其实感觉笔试题目在看到解析的时候并不太难,但是很多时候思路被卡死的比较多。这个题目当时考虑了贪心的思路,每次都贪心的选取出来最大的一组,然后把这个过.

2021-05-06 11:13:02 433 1

原创 【专题总结】数据流问题

文章目录295. 数据流的中位数480. 滑动窗口中位数1825 求出 MK 平均值数据流问题是一个比较常见的问题了。特点是数据是流的形式不断的加入的。因此我们在处理的时候需要逐渐添加数据到数据结构中。这类题目的特点一般是需要寻找中位数,众数,均值,topK这几类。295. 数据流的中位数既然希望我们寻找数据流中的中位数,那我们比较好的做法就是使用两个堆分别维护一半的最小值,和一半的最大值。我们可以认为认为的允许保存最小的K个元素的最大堆比保存最大的K个元素的最小堆能最多多一个元素。否则就需要

2021-04-28 12:02:02 287

原创 【周赛总结】1812-1840(模拟退火,约瑟夫问题,数据流问题,timeline,左右遍历,三维DP)

因为近期开始春招了,很难和之前一样有非常充分的时间每周都跟着周赛刷题了。但是总结做过的算法题,这个事情还是给我在春招实习的过程中带来了很大的帮助。我也会继续坚持。文章目录1814. 统计一个数组中好对子的数目(寻找合适的哈希表使用)1815. 得到新鲜甜甜圈的最多组数(模拟退火,dfs)1819. 序列中不同最大公约数的数目(待施工)1823. 找出游戏的获胜者(约瑟夫问题)1824. 最少侧跳次数(贪心、dp)1825. 求出 MK 平均值(TreeMap, 数据流问题)1830. 使字符串有序的最.

2021-04-28 10:36:32 202

原创 当我设计RateLimiter的时候我在想些什么?(原文:How is the RateLimiter designed, and why?)

本文其实对google开源的guava库中的SmoothRateLimiter函数的设计思路的翻译和解析。当我设计RateLimiter的时候我在想些什么?R最重要的特征是能够提供稳定的速率,也就是在正常情况下可以允许使用的最大速率。这就要求我们对于想要进来的请求进行限流。比如,让希望进入的线程进行等待。一个最为简单的思路实现限制QPS的速度是保存最后一个请求的时间戳,并且保证在下一个请求到来之前已经过去了1/QPS秒。例如我们creat(5),我们需要保证上一个请求是在200ms之前,这样就可以.

2021-04-21 17:32:38 104

转载 【转载】如何解决缓存与数据库的不一致问题

如何保证缓存(redis)与数据库(MySQL)的一致性说明  对于热点数据(经常被查询,但不经常被修改的数据),我们可以将其放入redis缓存中,以增加查询效率,但需要保证从redis中读取的数据与数据库中存储的数据最终是一致的。本文基于“孤独烟”与“58沈剑”两位的文章,针对一致性的问题进行了汇总总结,两位的原文链接见文末。前言  客户端对数据库中的数据主要有两类操作,读(select)与写(DML)。针对放入redis中缓存的热点数据,当客户端想读取的数据在缓存中就直接返回数据,即命中缓存(c

2021-04-19 15:52:28 317

原创 【分布式】一致性算法总结

文章目录2PC3PCPaxos基础流程优化RaftZAB消息广播崩溃恢复最近结束了面试以后,对面试中问到的分布式问题还是比较有兴趣的。因此希望能够进一步学习分布式的有关内容。本文主要是整理了分布式系统中使用到的分布式算法。分布式的一个大的问题就是如何在多个集群之间完成协调一致,也就是事务的原子性。并且我们还希望有高可用高性能的实现,尽量可以避免单点问题。因此往往都会设计到主节点的选择算法。2PC2PC是Two-Phase Commit的缩写,二阶段提交。目前大多数SQL数据库都是采用的二阶段提交的策略

2021-04-17 17:17:06 397

原创 【经典题目】统计1~n中1的出现次数

文章目录其实有点类似与计数DP的思路。但是我觉着这个问题的思路还是非常的巧妙的值得学习。首先将一个数字分为了两个部分,比如123456,高位high = 1234, 低位low = 6,当前位cur = 5。额外有当前的位的数量级digit;因为我们分析的是1的出现次数。那么有三种情况:当前位置是小于x的。比如123 0 7,这个情况下,当前位出现一的情况是0010~12219,只看高低位的话,000 0~1229因此是1230个。此时就是digit*high当前位置等于x。比如123 1 7,此

2021-03-28 22:32:03 433

原创 【专题讲解】排序那些事儿

文章目录排序方法比较快排归并算法TopK问题堆排序快排优化时间复杂度的计算主定理写在前面:从2020年的3月疫情在家,闲着无聊开始研究研究算法导论和刷题。一下子一年过来了,也到了准备春招的时候。最开始的文章都是python写的,因为都还是按照算法岗进行准备的。后来发现似乎还是开发岗更符合实际,因此也就开始用java进行刷题。在换了一种语言以后,更加觉着其实算法是与编程语言完全无关的,更多的是一种思想。近期会重新整理我写过的算法笔记。对于古老的版本会尝试补上java版本。排序方法比较首先,在面试中,排序

2021-03-14 13:52:54 95

转载 【转载】天下无难试之Redis面试刁难大全

Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。作为一名在互联网技术行业打击过成百上千名【请允许我夸张一下】的资深技术面试官,看过了无数落寞的身影失望的离开,略感愧疚,故献上此文,希望各位读者以后面试势如破竹,永无失败!Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/

2021-03-11 15:32:37 324

原创 如何优雅的求解斐波那契数列

题目背景就不再多说了,直奔主题。三个方法,递归,迭代与快速幂。递归方法 public int fib(int n) { if (n == 1 || n == 2) return 1; else return (fib(n-1)+fib(n-2)); }时间复杂度:O(2n)O(2^n)O(2n),并且会爆栈迭代方法显然我们其实只需要前两个状态量,因此直接保存前两个 public int fib(int n) { if (n =

2021-03-02 11:45:57 113

原创 【Linux】linux基础指令

文章目录基本操作文件系统文件属性看懂属性修改属性文件内容查看vim进程查看杀死进程程序后台运行磁盘查看程序的安装其他的一些命令基本操作进入:cd 展示:ls 展示全部:ls -a 展示属性:ls -l 可以cd ..表示退出到父目录,cd dir1进入当前目录是相对路径, cd /usr可以任意地方使用,进入绝对路径。正常连接系统都是进入了/root 路径下。我们可cd … 回到主目录。创建文件夹:mkdir name 递归创建目录:mkdir -p 1/2/3 指定目录的权限:mkdir -

2021-02-23 21:44:39 80

原创 【Mysql45讲】实战篇

文章目录09 | 普通索引和唯一索引,应该怎么选择?普通索引与唯一索引的区别什么场合适合普通索引changebuffer 和 redo log10 | MySQL为什么有时候会选错索引?mysql选择索引的依据解决选错索引的方法11 | 怎么给字符串字段加索引?12 | 为什么我的MySQL会“抖”一下?13 | 为什么表数据删掉一半,表文件大小不变?14 | count(*)这么慢,我该怎么办?16/17 | “order by”是怎么工作的?18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?19

2021-02-03 20:30:41 1021

原创 【Mysql45讲】基础知识点

文章目录01 | 基础架构:一条SQL查询语句是如何执行的?连接器查询缓存分析器优化器执行器01 | 基础架构:一条SQL查询语句是如何执行的?MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISA

2021-01-28 15:22:40 460

原创 【周赛总结】LIS问题,比较Integer数值,状态压缩DP。

文章目录1713. 得到子序列的最少操作次数 H 最长递增子序列问题的nlogn解法1719. 重构一棵树的方案数 H优雅的函数式编程比较Intger的数值1723. 完成所有工作的最短时间 H DFS/状态压缩dpd第223,224场周赛和43场双周赛的题目解析。中等题目不难,主要是H题目都还是很有特色的。1713. 得到子序列的最少操作次数 H 最长递增子序列问题的nlogn解法本质上在考察最长连续上升子序列问题,我们需要在坐标对应层次上寻找到一个最长上升子序列。核心是二分的思路,我们维护一个

2021-01-26 18:05:50 158

原创 【git操作命令】

提交到本地仓库$ git commit // 在当前分支上提交到本地$ git branch newBranch // 新建一个分支。$ git checkout newBranch // 移动到某个分支$ git checkout -b <your-branch-name> // 也可以简化为一个指令$ git meger a // 首先这个指令的前提是你在master分支上,然后命令会实现,将a合并到master分支上。并且前进一个。//Rebase 实际上就是取出一系列的提交

2021-01-25 15:40:05 212

原创 【每日一题】12月每日刷题总结(贪心,单调栈)

文章目录204 计数质数E (筛法)621. 任务调度器(偏向思路)204 计数质数E (筛法)一道经典的板子题。求解有很多可以进一步优化的方法。复杂度从n2n^2n2可以降为n(n)n\sqrt(n)n(​n),采用埃氏筛的算法可以降为nlgnlgnnlgnlgnnlgnlgn, 如果更进一步还可以采用线性筛的方法最快可以达到nnn.--------------朴素做法------------在判断的时候只需要判断小的那一半是不是因子就可。class Solution { public

2021-01-10 22:21:00 225

原创 【周赛总结】单调栈,离线查询,绝对值不等式,Trie树

文章目录1696. 跳跃游戏 VI (单调栈)1697. 检查边长度限制的路径是否存在 (离线查询)1703. 得到连续 K 个 1 的最少相邻交换次数 (绝对值不等式)1707. 与数组中元素的最大异或值(Trie树)第220,221场周赛和第42场双周赛1696. 跳跃游戏 VI (单调栈)利用单调栈的思路维护。单调栈的特点在于,栈内存储的是坐标而比较的内容则是映射的数据的数值大小。对于这道题目,我们在进行转移的时候,首先检查栈头的元素是不是距离太远。再加入当前的元素,然后维护单调栈。cla

2021-01-02 22:23:38 163 1

原创 【leetcode经典题目】石子问题--最大最小问题的解析

文章目录1686. 石子游戏 VI1690. 石子游戏 VII以石子问题为代表的最大最小问题是leetcode经常出现的一类博弈论类型的题目。主要的思路贪心或者DP。1686. 石子游戏 VI特点:不是两侧取而是任取,评价标准是各自拿到的石子的和。对于这种任取的思路,相当于是对石子堆按照某种顺序进行排序,如果数据量很大的话,无法找到恨到的方法。因此很容易想到贪心策略。那么核心问题就是,如何贪心,按照什么进行贪心。两个路径:对于同一块石子,两个人的权重不同,要不让va[i]-vb[i]最大,要不让

2020-12-17 11:22:14 1112 1

原创 【周赛总结】状态压缩+枚举子集,贪心,数学推导简化DP+单调栈

文章目录1680. 连接连续二进制数字M 进制转换1681. 最小不兼容性H 状态压缩,枚举子集1690. 石子游戏 VII、1686. 石子游戏 VI1691. 堆叠长方体的最大高度H 贪心1687. 从仓库到码头运输箱子H 数学推导化简DP、单调栈1680. 连接连续二进制数字M 进制转换其实题目没有很难,但是有点进制转换的意味在里面。在每次的拼接过程中,我们需要注意把原结果乘多少倍。如果在后面拼接了111,其实需要把之前的内容乘8倍。再加上当前的数字。class Solution {

2020-12-17 11:05:23 270

原创 【周赛总结】贪心,链表,左右遍历,单调栈,差分数组,优先队列

文章目录1665. 完成所有任务的最少初始能量H 贪心1669. 合并两个链表M 链表1671. 得到山形数组的最少删除次数H 左右两次遍历1673. 找出最具竞争力的子序列M 单调栈1674. 使数组互补的最少操作次数M 差分数组1675. 数组的最小偏移量 H 优先队列带来第216,217场双周赛和第40场双周赛的题目解析1665. 完成所有任务的最少初始能量H 贪心核心思路是贪心,有一个特点是贪心的题目都是要求什么任选之类,并且数据大。对于一般的任选可以采用状态压缩dp的方法。对于数据比较大的

2020-12-16 23:59:20 124

原创 【专题讲解】组合数相关的问题

文章目录组合数模板快速幂利用逆元的组合数模板Lucas定理的组合数模板判断组合数奇偶组合数模板注意复杂度,O(N2)O(N^2)O(N2),并且求解范围要求n,m小于2000。import java.util.Scanner;public class Main{ static final int N=2005; static final int mod=(int)1e9+7; static int c[][]=new int[N][N];

2020-12-10 20:25:59 138

原创 【每日一题】2020.11月每日刷题总结

文章目录140.单词拆分II (dfs,dp)57.插入区间(判断区间重叠的标准)本专栏主要的针对每日一题的更新,会总结一些比较好的每日一题。140.单词拆分II (dfs,dp)class Solution { public List<String> wordBreak(String s, List<String> wordDict) { // 在整体的思路上,需要首先维护一个dp[i]表示第i位之前的内容全部都是可以在字典中的。这里不包括第i位。

2020-12-07 23:04:36 239

原创 【redis】介绍与功能

文章目录发布与订阅事务WATCH命令ACID性质发布与订阅通过SUBSCRIBE命令,客户端可以订阅一个或者多个频道。或者通过PSUBSCRIBE订阅一个或者多个模式。Redis中频道是采用了字典的形式,键的值是一个链表。每有新增加的订阅者,就把客户端添加到订阅者链表的尾部。而模式订阅采用了链表的结构,链表中的每个节点都包含了一个Pubsub Pattern结构。保存了客户端的名称和订阅的模式事务通过MULTI、EXEC、WATCH等命令实现事务功能。在事务执行完毕旗舰,服务器不会中断事务而去执行

2020-11-27 11:25:32 172

原创 【Redis】多机数据库的实现

文章目录复制旧版(2.8之前)的复制同步命令传播缺陷新版复制功能PSYNC复制的实现心跳检测Sentinel哨兵模式启动并且初始化Sentinel通信连接创建连向主服务器的网络连接获取主从服务器信息向服务器发送和接受订阅故障检测与处理检测主观下线检测客观下线选举领头Sentinel故障转移集群复制在redis中,用户可以通过SLAVEOF命令,让服务器区复制另外一个服务器。被复制的服务器为主服务器,执行复制的服务器是从服务器。旧版(2.8之前)的复制同步从服务器向主服务器的同步操作需要向主服务器发

2020-11-26 11:12:38 122

空空如也

空空如也

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

TA关注的人

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