至少有 K 个重复字符的最长子串题解集合 递归---分而治之 滑动窗口---双指针 总结 点评 ---- 递归—分而治之 解题思路 本题要求的一个最长的子字符串的长度,该子字符串中每个字符出现的次数都最少为...递归最基本的是记住递归函数的含义(务必牢记函数定义):本题的 longestSubstring(s, k) 函数表示的就是题意,即求一个最长的子字符串的长度,该子字符串中每个字符出现的次数都最少为 k。...s 中所有的包含 c 的子字符串都不能满足题意。...k,这时候 t + 1 的长度满足要求 如果新位置的字符在原有区间没出现过,那新字符的出现次数只有一次,这时候 t + 1 的长度不满足要求 因此我们无法是使用「二分」,相应的也无法直接使用...} } return ans; } }; ---- 总结 「当确定了窗口内所包含的字符数量时,区间重新具有了二段性质」。
运算符 许多搜索引擎都允许在搜索中使用两个不同的布逻辑运算符:AND和OR。...使用括号 当两个关键词用另外一种操作符连在一起,而你又想把它们列为一组时,就可以对这两个词加上圆括号。 4. 加减号 很多搜索引擎都支持在搜索词前冠以加号+限定搜索结果中必须包含的词汇。...注意,inurl:语法和后面所跟的关键词,不要有空格。 6.4. 精确匹配——双引号" "和书名号> 给出的搜索结果中的查询词,可能是拆分的。...书名号是百度独有的一个特殊查询语法。在其他搜索引擎中,书名号会被忽略,而在百度,中文书名号是可被查询的。...加上书名号的查询词,有两层特殊功能,一是书名号会出现在搜索结果中;二是被书名号扩起来的内容,不会被拆分。书名号在某些情况下特别有效果,例如,查名字很通俗和常用的那些电影或者小说。
如果不指定ROWS BETWEEN,默认统计窗口为从起点到当前行。 row_number() over() 为查询出来的每一行记录生成一个序号。...示例:利用row_number函数,对表中的数据根据id进行分组,按照pv倒序排序求最大的pv相关信息。...与row_number函数不同的是,rank函数考虑到了over子句中排序字段值相同的情况,如果使用rank函数来生成序号,over子句中排序字段值相同的序号是一样的,后面字段值不相同的序号将跳过相同的排名号排下一个...dense_rank功能与rank函数类似,但dense_rank函数在生成序号时是连续的。dense_rank函数出现相同排名时,将不跳过相同排名号。 rank值紧接上一次的rank值。...在各个分组内,rank()是跳跃排序,有两个第一名时接下来就是第三名,dense_rank()是连续排序,有两个第一名时仍然跟着第二名。
本文链接:https://blog.csdn.net/xc_zhou/article/details/102672677 把搜索范围限定在网页标题中使用intitle 1)使用方式: 把查询内容中特别关键的部分用...精确匹配使用"" 和《》 **1)使用方式:**在查询的词很长的情况下,百度所有结果可能把这个查询词拆分,导致搜索结果您并不满意。...解决方案是可以给这个查询词加上双引号,或书名号,让百度不拆分查询词; 2)举个例子:在搜索框中输入查询“黑客排名”,加上双引号(中英文双引号均可),获得的结果就是完全符合要求的; **3)注意事项:**...书名号在百度有两个特殊功能,首先书名号会出现在搜索结果中;而是被书名号括起来的内容不会被拆分,这个在查询电影书籍时特别有效。...让搜索结果中不含有特定查询词使用减号 **1)使用方式:**如果搜索结果中有一些网页是您不需要的,而且这些网页都包括特定关键词,那么用减号语法可以去除这些含有特定关键词的网页; **2)举个例子:**搜简历模板
例如对于薪水3000/2000/2000/1000排名之后为1、2、2、3,若取N=3,则返回结果1000。另外,题目形式是一个自定义函数,但本质仍是一个SQL查询。...因为仅涉及到单表查询,所以效率更高,与直接用limit+offset效率相当。 ---- 解法6 窗口函数 实际上,解法5中的自定义变量查询写法在MySQL8.0以后有相应的窗口函数可以实现。...窗口函数在MySQL8.0版本首次引进,而其他很多SQL语言则早已内置。具体而言,对于本题获取"致密"排名的薪水,用到的窗口函数就是dense_rank()。...,例如LeetCode中困难级别的数据库题目很多都需要借助自定义变量实现 如果MySQL版本允许,窗口函数是一个最优选择,除了经典的获取3种排名信息,还有聚合函数、向前向后取值、百分位等,具体可参考官方指南...MySQL8.0内置窗口函数 ? 相关阅读: 分享几道LeetCode中的MySQL题目解法 MySQL中查询中位数? MySQL查询连续打卡信息? 划重点!你还在困惑MySQL中的"锁"吗?
xmin 在创建(insert)记录(tuple)时,记录此值为插入tuple的事务ID xmax 默认值为0.在删除tuple时,记录此值 cmin和cmax 标识在同一个事务中多个语句命令的序列值,.../cmax均不相同,实际上它们是该tuple的2个不同版本 在旧窗口中,更新之前,数据的顺序是2,3,1,4,5,更新后变为3,1,4,5,2。...换句话说,事务对增、删和改所操作的数据上都留有其事务ID,可以很方便的提交该批操作或者完全撤销操作,从而实现了事务的原子性。...但是这部分磁盘并不会被真正释放,也即不会被交还给操作系统,因此不能被系统中其它程序所使用,并且可能会产生磁盘碎片。...VACUUM FULL 需要获得排它锁,它通过“标记-复制”的方式将所有有效数据(非dead tuple)复制到新的磁盘文件中,并将原数据文件全部删除,并将未使用的磁盘空间还给操作系统,因此系统中其它进程可使用该空间
悲观锁原理:使用数据库内部锁机制,进行数据库表的锁定。就是在A管理员修改数据时,A管理员就将数据锁定,此时B管理员无法进行修改、查询。避免两个事务同时修改,也就解决了丢失更新问题。...还是举个例子实现一下: 在MySQL中,默认情况下,当你修改数据,会自动地为数据加锁,以防止两个事务同时修改数据,但是有个前提,就是必须在事务中才会自动加锁,事务和锁是不可分开的,锁一定是在事务中才能使用...然后在两个窗口均开启一个事务,接下来在左边窗口输入 update account set money = money - 100 where name = 'ccc'; 但是不要提交,然后两边分别查询数据...但是在左边窗口是可以进行数据修改的,右边窗口才会进入阻塞状态。 需要注意的是,虽然右边窗口无法进行修改,但是是可以进行查询的,所以这把锁是读锁。 由此,我们来了解一下MySQL的锁类型。...要注意,一张表只能加一个排它锁,排它锁和其它的共享锁都具有互斥效果。通俗一点说就是,一张表如果想加排它锁,在它之前,就不能加别的共享锁和排它锁。
本文介绍4种分类排名方式:子查询、自连接、自定义变量以及MySQL8.0窗口函数。 ? 01 需求介绍 考虑MySQL中的一个经典应用:给定一个学生考试成绩表,要实现对学生按课程依成绩高低进行排序。...应用自连接,在不创建任何索引的情况下查询速度与子查询情况差不多,耗时73s;在添加有效索引后,查询时间27s,效率有所提升,但与查询方案效率相当。 ? 未添加索引时的自连接执行计划 ?...显然,无论是子查询还是自连接方案,都难以满足我们的实时查询需求。 只得再觅他法。...…这种,因为不跳级,所以比较"致密" 同分同名,跳级:rank(),普通排名,类似1、2、2、4……这种 其中,每个窗口函数函数又必须与over()函数配套使用,over()函数中的参数主要包括partion...MySQL8.0窗口函数,相当于对自定义变量方案的封装,效率最高,不依赖于索引,但8.0以前版本无法使用 实际上,在得到排名需求后,可进一步通过简单子查询实现查询分类Top K的任务需求。
为什么会有这个提示呢?一个空列表为什么会影响性能呢?...,执行计划部分几乎所有的时间都耗费在排序上,但是和执行时间相比,查询计划的时间可以忽略不计。...一个测试 如果只是去掉方案1排序,查看一下分析结果 使用 PostgreSQL Explain ANALYZE 命令分析查询成本结果如下: postgres=> EXPLAIN ANALYZE SELECT...处理每条数据 cpu 所需时间 cpu_tuple_cost:处理每条记录的CPU开销(tuple:关系中的一行记录) cpu_operator_cost:操作符或函数带来的CPU开销。...width=211) Index Cond: (id = 20039) (2 rows) 通过这个查询可以看到,在使用有索引的字段查询时,查询成本显著降低。
1:信号的生命周期? 信号产生-》信号在进程中注册-》信号在进程中的注销-》执行信号处理函数 2:信号的产生方式? ...Select和poll缺点:(1)每次调用select都需要将fd集合从用户态拷贝到内核态(2)每一次调用select都需要在内核中遍历所有的fd(3)select支持的文件描述符太小,默认1024,poll...92:当接受方的接受窗口为0时还能接受数据吗?为什么?还能接受什么数据?那怎么处理这些数据呢? 可以接受。 ...数据:零窗口探测报文;确认报文段;携带紧急数据的报文段 可能会被抛弃 93:当接受方的返回的接受窗口为0时,发送方会进行什么操作? ...全局和局部; 全局:在整个内存空间置换 局部:在本进程中进行置换 全局:(1)工作集算法(2)缺页率置换算法 局部:(1)最优算法(2)FIFO先进先出算法(3)LRU最近最久未使用
信号产生-》信号在进程中注册-》信号在进程中的注销-》执行信号处理函数 信号的产生方式? ...Select和poll缺点:(1)每次调用select都需要将fd集合从用户态拷贝到内核态(2)每一次调用select都需要在内核中遍历所有的fd(3)select支持的文件描述符太小,默认1024,poll...不可以,因为常函数是操作成员变量的,而静态函数没有成员变量可说 知道什么是幂等性吗?举个例子? 其任意多次执行所产生的影响均与一次执行的影响相同。 当接受方的接受窗口为0时还能接受数据吗?...数据:零窗口探测报文;确认报文段;携带紧急数据的报文段 可能会被抛弃 当接受方的返回的接受窗口为0时,发送方会进行什么操作? ...全局和局部; 全局:在整个内存空间置换 局部:在本进程中进行置换 全局:(1)工作集算法(2)缺页率置换算法 局部:(1)最优算法(2)FIFO先进先出算法(3)LRU最近最久未使用
前言 在上一节实现主窗体信息查询功能中我们实现了在主窗体中通过单条件查询或者组合查询进行学生信息的筛选功能,系统能够在所有的数据中精确地找到某个具体的符合条件的学生信息。...如果想同时加载两个窗体,第二个窗体必须要以子窗体的形式打开,这里我们就可以使用Toplevel来创建子窗体。...现在点击添加学生按钮,就可以正常加载明细信息窗口了! ? 所以,出现这个问题的根源所在就是:使用Tk这个类实例化一个窗体,这个窗体是一个主窗体。已经实例化了一个主窗体,再实例化一个是不可以的。...这里我们规定: 当action_flag = 1时,表示查看模式; 当action_flag = 2时,表示添加模式; 当action_flag = 3时,表示修改模式。 2....,不要忘了在构造函数中添加上: self.load_windows_flag() 我们在主窗体函数中也定义一个全局变量,作为修改明细窗体标题的标志位: self.action_flag = 0 然后在主窗体函数中
0x00 前言 搜索引擎语法是一个本该经常使用但是却一直被我忽略工具。它可以在很大程度上满足一些特殊需求,比如:渗透时查找网站后台或者上传文件页面等。...目前主要常用的搜索引擎主要baidu、google、bing,每个搜索引擎的语法有细微的差别,但是很多地都非常类似,由于google在国内经常无法访问(比如我现在用了Chromebook,在家里面整笔记时候还没弄好...0x01 常用搜索引擎语法 1.site 把搜索范围规定在特定的站点中 。但是有时候你需要找一些特殊的文档,特别是针对于专业性比较强的网站合理使用site可以让你取得事半功倍的效果。...inurl 可以查询网站具体页面的收录情况 举例: # inurl:hao123.com 4. 中括号、双引号或书名号 可精确匹配,缩小搜索范围。...举例: # [java虚拟] 注意: - 书名号在百度有两个特殊功能,首先书名号会出现在搜索结果中; 被书名号括起来的内容不会被拆分,这个在查询电影书籍时特别有效。
当试图修改数据时,事务会为所依赖的数据资源请求排它锁,一旦授予,事务将一直持有排它锁,直至事务完成。在事务执行过程中,其他事务就不能再获得该资源的任何类型的锁。 ...(2)近距离观测阻塞 Step1.打开两个独立的查询窗口,这里称之为Connection A,Connection B Step2.在Connection A中运行以下代码(这里productid...另外,当前会话的SPID还可以在查询窗口的标题栏中找到。...,便能够正常获得排它锁了,于是执行成功,价格变为了20.00。...这是因为在可重复读隔离级别下,两个事务在第一次读操作之后都保留有共享锁,所以其中一个都不能成功获得为了更新数据而需要的排它锁。但是,负面影响就是会导致死锁。
,这个时候谁都拿它没办法,因为子进程已经结束了,就算使用kill -9 PID2这种发送终止信号的命令都无效 我将介绍进程相关的常用的三个信号 kill -9 PID:终止进程 kill -19...答案:使用wait或者waitpid函数 wait和waitpid函数介绍 在Linux中怎么查函数的手册呢?...这里表示的是: 若wait这个函数成功执行,返回该进程的PID 若wait这个函数执行失败,则返回-1 处理僵尸进程的原理 答案:所以当我们用wait这个函数时,当子进程的状态由R或R+状态(运行状态...pid),若该处填入-1,则是等待任何一个子进程 int* status:输出型参数 options:默认为0,表示阻塞等待 如果我们用了演示代码,并且同时观察了该进程的状态(我们可以在复制后的窗口输入如下代码来时隔一秒的速度观察进程的状态...在命令行输入以下代码:kill -l,就可以看见所有的信号代表的含义了啦 ↩︎ 在使用man时输入/+ 你要查找的内容时,可以在文档中查找你要查找的相关信息 ↩︎ 常见的段错误有:除以0,数组越界访问
值得一提的是:在Oracle等数据库中有窗口函数,可非常容易实现这些需求,而MySQL直到8.0版本也引入相关函数。...)和DESC,因为排名总得有个依据 收获 涉及到排名的问题,都可以使用窗口函数来解决。...MySQL窗口函数 ---- 题五:连续出现的数字 编写一个 SQL 查询,查找所有至少连续出现三次的数字。...Max 获得了最高的工资,Randy 和 Joe 都拿到了第二高的工资,Will 的工资排第三。...| 1 | | English | 1 | | Math | 6 | 使用上面查询结果的临时表进行子查询,筛选学生数量超过
图中的步骤3,4不难理解,这里就不多赘述,因为步骤3中的递归思想是大家比较熟悉的, 步骤4中的“组合”其实就只是个概念上的词,因为所有的子数组本来就连接在一起,只要所有的递归结束了,整个数组就是有序的。..., 为什么左右游标相遇时一趟切分就完成了?...// 对上一轮排序(切分)时,基准元素左边的子数组进行递归 sort(a, j+1, high); // 对上一轮排序(切分)时,基准元素右边的子数组进行递归 } 对切分函数partition的解读...当数组长度小于M的时候(high-low <= M), 不进行快排,而进行插排 转换参数M的最佳值和系统是相关的,一般来说, 5到15间的任意值在多数情况下都能令人满意 例如, 将sort函数改成: ...而如果数组不是随机的,而是有一定顺序的,甚至在最坏的情况下:完全正序或完全逆序, 这个时候麻烦就来了: 快排所消耗的时间大大延长,完全达不到快排应有的效果。
当然使用框架时依据实际情况灵活将XX换成实际需求的字段,并且这些关键字不是必须都存在的,如只有select和from,让机器知道从哪查询XX也是可以的。...因为这会导致一对多,SQL逻辑混乱的情况;我们应用上面说的万能框架+聚合三要素给出一段聚合函数的使用案例: 需求:使用聚合函数实现提取在XX学校XX年纪XX班同学中,语数外三门成绩最小值大于等于60分所有同学姓名...,但是在实际工作中,由于业务复杂性,不可能所有数据都放在一张数据表中,这样会造成资源的浪费。...我们来简单理解一下: 内连接:基于连接条件,两表都存在的数据将被提取出来显示在同一行; 全连接:基于连接条件,两表都存在的数据将被提取出来显示在同一行,其他数据也会被提取出来,缺失部分使用空值填充; 左连接...但这个聚合值可以发生一些变化,演变为排序值,即窗口函数另一应用:分区排序(明细&次序)。
计算机产生的非自然图像最好不要使用这种有损压缩格式。 2. 基础 在 LaTeX 中,插图是由 graphics 或 graphicx 宏包所使用的 \includegraphics 命令完成的。...对于「顶部对齐」,需要注意的是如果直接把插图放进 t 选项的子段盒子中,并不能使图片在顶部对齐,这是因为 t 选项只能让第一行按基线对齐;此时可以在盒子中先使用 \vspace{0pt} 增加一个高度为...由于 TeX 固有的限制,文字绕排的效果还无法做到尽善尽美,对绕排图表的位置、形状、使用都有一些限制。因此在使用绕排工具时,往往需要仔细的调整,或者另寻它途。...在 TeX 内部,绕排工具都是使用 \parshape 命令的功能配合复杂的盒子操作与计算完成的,这也是为什么在列表环境中无法正常使用绕排功能(因为列表项也是由 \parshape 实现的)。...可以使用 \parshape 命令产生复杂形状的绕排效果,下面所介绍的 picinpar、wrapfig 和 floatflt 宏包都只能产生矩形的空洞,而 shapepar 和 cutwin 宏包则部分实现了复杂绕排的功能
所以每次数据查询的次数都一样; 特点: 在B树的基础上每个节点存储的关键字数更多,树的层级更少所以查询数据更快,所有指关键字指针都存在叶子节点,所以每次查找的次数都相同所以查询速度更稳定; 应用场景...一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。 在图示中,键标注在节点中,值标注在节点之下。每一个完整的英文单词对应一个特定的整数。...在函数strcpy和函数memcpy都没有对内存重叠做处理的,使用这两个函数的时候只有程序员自己保证源地址和目标地址不重叠,或者使用memmove函数进行内存拷贝。...当待排序序列的长度分割到一定大小后,继续分割的效率比插入排序要差,此时可以使用插排而不是快排 优化2:在一次分割结束后,可以把与Key相等的元素聚在一起,继续下次分割时,不用再对与key相等元素分割 优化...3:优化递归操作 快排函数在函数尾部有两次递归操作,我们可以对其使用尾递归优化 优点:如果待排序的序列划分极端不平衡,递归的深度将趋近于n,而栈的大小是很有限的,每次递归调用都会耗费一定的栈空间,函数的参数越多
领取专属 10元无门槛券
手把手带您无忧上云