自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只老风铃

我要去吃饭了

  • 博客(510)
  • 资源 (2)
  • 收藏
  • 关注

原创 InnoDB索引①:B+树索引

InnoDB索引索引是数据库应用设计和开发中的重要技术手段,其通过选取记录的一列或者多列,在此基础上建立相应的数据结构,从而达到快速查询的目的。InnoDB存储引擎主要支持的索引类型包括:B+树索引、自适应Hash索引、全文索引。B+树索引是传统意义上的索引的实现方式,也是关系数据库中目前使用最多的索引方式。B+树本质为多路查找树,其根据key定位相应的叶子节点,从而快速的查询相应的数据。通过B+树索引可以定位到目标数据所在的页,将相应的页从磁盘加载进内存,从而寻找到其中数据。B+树数据结构B

2020-12-06 13:31:02 88

原创 队列模拟+归并求解

题目描述排队等号时,观察到以下场景。银行有m个服务窗口,假设当前有n个人等待办理业务,那么这n个人会被顺序分配一个从1到n的号码。等待办理业务的流程如下:从第1号到第n号顺序的进行排队。假设当前第1号到第i-1号都正在办理或已经办理完业务,且某个窗口A没有客人正在办理业务,那么第i号会马上到窗口A办理他的业务。如果有多个这样的窗口,第i号会随意选择一个窗口。0时刻,观察到m个窗口都没有客人正在办理业务,而n个人正在等待办理业务。为了简化问题,我们假设第i号不管在哪个窗口办理业务,办

2021-04-29 14:57:18 2

原创 树的分割:DFS后序遍历

题目描述有n个房间,房间之间有通道相连,一共有n-1个通道,每两个房间之间都可以通过通道互相到达。通过封闭一些通道来把n个房间划分成k个互相不连通的区域,他希望这k个区域内部的金币数目和都大于等于m,是否可行。示例1输入3,2,3,[1,2],[2,3],[3,1,2]返回值true说明切断1和2之间的通道,划分出了2个金币数为3的连通块第一个参数n代表房间数量第二个参数k代表要划分成k块区域。第三个参数m代表每块区域的金币数要大于等于m第四、五个参数vector

2021-03-28 13:01:10 13

原创 Leetcode通配符匹配②

题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配示例1输入“aaa”,“a*a”返回值true思路本题不同于以往的.代表一个字符 代表任意字符串(包含空)的问题。本题代表前面的字符可以统配0或者多次采取dp[i][j]表示串的前面i

2021-03-23 01:36:53 15

原创 STL:迭代器iterator

迭代器模式迭代器模式:提供一种方法,使得外部可以依次访问内部的元素,而不需要明确其结构的内部实现。STL的中心思想是:数据容器与算法分离,彼此独立设计,最后通过一定的融合技术将两者结合使用。STL三大基本组件:容器、算法、迭代器Iterator find(Iterator first,Iterator last,const T& val){ while(first!=last && *first!=val) { fir

2021-03-22 11:46:15 20

原创 再谈std:string

string的三种实现方式《Effctive STL》中提及std:string有三大类实现方式方法原理无特殊处理 eager copy采取类似于std:vector的数据结构,早期实现方式Copy On Wirte 写时复制即维护一个指向字符串存储空间的指针短字符串优化SSOstring对象本身空间可以存放16长度以内字符串,长字符串则由指针指向常见C++实现库采取的string实现方法:库实现方式g++ std:stringCO

2021-03-19 11:27:59 25

原创 linux虚拟内存④:段与缺页

Linux虚拟内存系统Linux将进程的地址空间,将虚拟内存区域组成一些区域(段)的集合。一个区域就是已分配的虚拟内存连续片(chunk),这些段通过某种方式相互链接。一个进程的地址空间由下而上由多个不同类型的连续区域(段)组合而成:代码段、初始化数据段、未初始化数据段、运行时堆区域、共享库的映射区域、运行时栈区域、内核代码和数据段(多个进程通过虚拟内存方式共享)、内核为每个进程维护的元数据(页表、task_struct、mm结构)它们在虚拟地址空间中内部连续,中间则存在空隙,内核通过链表(

2021-03-18 10:48:00 21

原创 区间+二分:求解最值

二分思想当可以确认所求的问题的解,一定位于一个有序区间内,并且满足区间前面部分满足要求,区间后面部分不满足要求,那么可以采取二分的思想进行对数级别复杂度的求解定位。题目描述一个长度为n的正整数序列,从里面取出一段连续的长度大于等于k的序列。定义一个序列的“中数”为最大的整数x,满足序列中至少一半的数字大于等于x从中任取序列的,若存在中数,最大中数可以是多少?示例1输入5,3,[30,1,2,31,9]返回值30说明选前四个数字组成[30,1,2,31],中数为30求

2021-03-16 12:07:17 17

原创 dp+滚动区间:字母交换

dp问题的核心思路是利用之前的计算结果来计算当前的问题,主要包含两大类型:①用序号之前的计算结果,即k=>k+1由k步结果计算k+1结果②用小规模问题的计算结果,例: [left+1,right-1]=>[left,right]即无关序号,关心问题规模题目描述字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同?输入描述:第一行为一个字符串S与一个非负整数m。(1.

2021-03-15 14:15:20 13

原创 BFS+优先队列:BOX

题目描述有一个推箱子的游戏, 一开始的情况如下图:上图中, ‘.’ 表示可到达的位置, ‘#’ 表示不可到达的位置,其中 S 表示你起始的位置, 0表示初始箱子的位置, E表示预期箱子的位置,你可以走到箱子的上下左右任意一侧, 将箱子向另一侧推动。如下图将箱子向右推动一格;…S0… -> …S0.注意不能将箱子推动到’#'上, 也不能将箱子推出边界;现在, 给你游戏的初始样子, 你需要输出最少几步能够完成游戏, 如果不能完成, 则输出-1。输入描述:第一行为2个数字,n,

2021-03-14 12:51:57 9

原创 贪心算法:平均

题目描述有三只球队,每只球队编号分别为球队1,球队2,球队3,这三只球队一共需要进行 n 场比赛。现在已经踢完了k场比赛,每场比赛不能打平,踢赢一场比赛得一分,输了不得分不减分。已知球队1和球队2的比分相差d1分,球队2和球队3的比分相差d2分,每场比赛可以任意选择两只队伍进行。求如果打完最后的 (n-k) 场比赛,有没有可能三只球队的分数打平。输入描述:第一行包含一个数字 t (1 <= t <= 10)接下来的t行每行包括四个数字 n, k, d1, d2(1 <= n

2021-03-12 09:52:12 10

原创 Leetcode:dp+跳转

题目描述存在n+1个房间,每个房间依次为房间1 2 3…i,每个房间都存在一个传送门,i房间的传送门可以把人传送到房间pi(1<=pi<=i),现在路人甲从房间1开始出发(当前房间1即第一次访问),每次移动他有两种移动策略:A. 如果访问过当前房间 i 偶数次,那么下一次移动到房间i+1;B. 如果访问过当前房间 i 奇数次,那么移动到房间pi;现在路人甲想知道移动到房间n+1一共需要多少次移动;输入描述:第一行包括一个数字n(30%数据1<=n<=100,10

2021-03-11 11:49:00 16

原创 优先队列+模拟:任务调度

问题描述存在多个任务,而这些任务需要人员实现。在某个时间会出现一些任务,每个 有提出时间、所需时间和优先等级。最想实现的任务首先考虑优先等级高的,相同的情况下优先所需时间最小的,还相同的情况下选择最早想出的。同时有M个人员,每个人员空闲的时候就会查看尚未执行并且最想完成的一个任务,然后从中挑选出所需时间最小的一个任务独立实现,如果有多个同时处于空闲状态的人员,那么他们会依次进行查看。输入描述:输入第一行三个数N、M、P,分别表示有N个PM,M个人员,P个任务。随后有P行,每行有4个数字,分

2021-03-10 11:14:57 21

原创 单调栈进阶-区间合并

单调栈随着不断的输入数字,从栈底到栈顶维护一个递增的数列,当新来的数字比栈顶更小时,弹出栈顶并完成某种计算,直到保持递增趋势。问题描述给定一个数组序列,需要求选出一个区间,使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数*区间所有数的和如给定序列 [6 2 1]则根据上述公式,可得到所有可以选定各个区间的计算值:[6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1 * 1 = 1;[6,2] = 2 * 8 = 16;[2,1]

2021-03-08 23:42:04 28

原创 集合划分问题-DFS与回溯

集合划分问题集合划分问题是对这样一类问题的抽象,即原始问题包含一些列可能结果,不断的划分出子集并研究剩余的集合能否继续划分,即问题能否最终求解,通常采取dfs进行求解题目描述一种卡牌游戏,规则如下:总共有36张牌,每张牌是1~9。每个数字4张牌。你手里有其中的14张牌,如果这14张牌满足如下条件,即算作和牌14张牌中有2张相同数字的牌,称为雀头。除去上述2张牌,剩下12张牌可以组成4个顺子或刻子。顺子的意思是递增的连续3个数字牌(例如234,567等),刻子的意思是相同数字的3个数字牌(

2021-03-06 12:47:59 54

原创 TSP问题-二进制+DP

题目描述从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,希望能够通过合理的路线安排尽可能的省一些路上的花销。给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。输入描述:城市个数n(1<n≤20,包括北京)城市间的车票价钱 n行n列的矩阵 m[n][n]输出描述:最小车费花销 s输入40 2 6 52 0 4 46 4 0 25 4 2 0输出13求解思路旅行商T

2021-03-03 14:34:52 44

原创 字典树-异或问题

题目描述给定整数m以及n各数字A1,A2,…An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大于m的有多少个。输入描述:第一行包含两个整数n,m.第二行给出n个整数A1,A2,…,An。对于30%的数据,1 <= n, m <= 1000对于100%的数据,1 <= n, m, Ai <= 10^5示例1输入3 106 5 10输出2求解思路容易知道如果两个数字异或的结果res大于m, 那么一定是从某一位开始

2021-03-02 14:37:44 37

原创 获取最长递增子数组(连续递增子序列)

最长递增子数组的求解方式,即研究以arr[i]结尾的递增子数组长度,采取经典动态规划即可题目描述现在有一个n个数组成的数列,牛牛现在想取一个连续的子序列,并且这个子序列还必须得满足:最多只改变一个数,就可以使得这个连续的子序列是一个严格上升的子序列,这个连续子序列最长的长度是多少。示例1输入[7,2,3,1,5,6]输出5求解思路现需要修改其中一个数,使得前后构成递增子数组,那么需要知道以任意一个位置开始或者结束的递增子数组长度实现细节:head[] tail[]分别表.

2021-03-01 12:53:43 222

原创 单源最短路径算法

对于单源最短路径算法,最为著名的为基于贪心策略的dijkstra,其维护一个从开始点到所有点的Dis[]数组,每次选取剩余点中距离源点最短的点,加入到已访问集合U中,同时更新源点到剩余点集合V中的点的Dis[]数组。题目描述在一个有向无环图中,已知每条边长,求出1到n的最短路径,返回1到n的最短路径值。如果1无法到n,输出-1输入5,5,[[1,2,2],[1,4,5],[2,3,3],[3,5,4],[4,5,5]]输出9核心公式: dis[index]+map[index][.

2021-03-01 05:10:28 66

原创 最小生成树算法-kruskal与prim

最小生成树算法是图论中的经典贪心算法,主要有kruskal和primkruskal算法其基本思想是:每次加入一条尽可能短的边到目标生成树中首先初始化所有节点为单独的树,可采取并查集father数组表示将所有的边按照权重从小到大排列每次选取一条边,如果边两侧的顶点不再一个集合中,那么合并(加入到最终生成树中)否则,抛弃=》直到挑选了n-1条边(节点数目为n)那么即为最终最小生成树prim算法其基本思想是:每次选择离生成树集合最近的点加入到生成树集合首先初始化其中一个节点加入生成树集.

2021-02-28 01:03:30 44

原创 字典序与字典树

字典树通常采取一个精简的结构来维护大量的单词集合,并保持有序以及对单词的统计字典序则表示各字符对应位置排序的结果题目描述给定整数n和m, 将1到n的这n个整数按字典序排列之后, 求其中的第m个数。对于n=11, m=4, 按字典序排列依次为1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9, 因此第4个数是2.对于n=200, m=25, 按字典序排列依次为1 10 100 101 102 103 104 105 106 107 108 109 11 110 111 112 .

2021-02-25 11:30:43 41

原创 shell-文本篇

shell是一种壳程序,为用户提供命令行入口,其中包含一些内置的命令,用于文本的处理>cat nowcoder.txt #查看文本内容统计文件的行数>cat nowcoder.txt | wc -l查看文件的最后5行>cat nowcoder.txt | tail -5查看文件的第5行>cat nowcoder.txt | head -5 | tail -1输出一个文本文件 nowcoder.txt中空行的行号,可能连续,从1开始&g.

2021-02-25 10:18:50 37

原创 最大线性无关组-混合颜料

题目描述你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的精神,你想购买更少的颜料就满足要求,所以兼职程序员的你需要编程来计算出最少需要购买几种颜色的颜料?.

2021-02-24 01:18:25 21

原创 快速矩阵幂与斐波那契第n项

题目描述给出一个整数 n,请输出斐波那契数列的第 n 项对 1e9 + 7 取模的值。容易知道斐波那契数列前几项为 1 1 2 3 5 8 13…满足f[n]=f[n-1]+f[n-2]那么f(n) = f(n-1) + f(n-2)f(n-1) = f(n-1) 矩阵:[ f(n) ] = [ 1*f(n-1) + 1*f(n-2) ] = [ 1 1 ] * [ f(n-1) ][ f(n-1) ] [ 1*f(n-1) + 0*f(n-2) ] [

2021-01-29 11:44:26 37

原创 二叉树中最大搜索子树和最大搜索子结构

最大的搜索子树输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)ps:节点的编号就是节点的值。输入3 22 1 31 0 03 0 0输出3基本思路研究root开头的子树是否满足二叉搜索树,满足那么直接返回root的大小否则开始研究root的左右孩子所在子树。

2021-01-26 16:31:46 57

原创 二叉树的最近公共祖先

二叉树的最近公共祖先若为传统的tree_node求解问题*基本思路:采取DFS方式,对于当前节点,研究是否为目标节点的一个。然后根据递归子问题的返回,若其中一个子树返回2,那么说明问题已经在子树中解决,否则,计算子树返回的数目+当前节点是否为目标点的数目。最后返回若为多组目标点求解问题基本思路:首先通过DFS建立每个节点=》节点level深度的映射。同时建立每个节点=》父亲节点的映射。(物理存储可能采取map或者数组方式)然后LCA算法过程,首先研究两个点是否在同一Level。如果不

2021-01-22 10:50:51 35

原创 位运算实现算术运算

实现加法数在计算机中为补码表示,具体体现为正数为原码,负数为原码取反+1对于num1 num2 其各位值按位或求得加法后的值 即 1|1=0 1|0=1 0|1=1 0|0=0进位值按位与求得加法后的进位,之后再左移一位最后结束循环的过程为不再拥有进位int add(int num1,int num2){ while(num1!=0) //存在进位 { int temp=num2; num2=num2^num1;//作异或运算

2021-01-15 15:10:07 51

原创 前缀树实现最大异或子数组

问题描述数组异或和的定义:把数组中所有的数异或起来得到的值。给定一个整型数组arr,其中可能有正、有负,有零,求其中子数组的最大异或和。输入43 -28 -29 2输出7说明{-28,-29}这个子数组的异或和为7,是所有子数组中最大的思路对于求子数组问题,通常采取动态规划dp[i]=k表示前i项的异或值那么对于其中的【i=>j】其异或值为dp[j]与dp[i-1]的“异或值做除法"本题思路是维护一个前缀数组,即字典树形式计算XOR[]表示前i项的异或值,那么对

2021-01-15 11:19:38 36

原创 分割回文

字符串分割最少分割最少分割问题描述给定一个字符串,返回把str全部切割成回文串的最少切割数。输入输出输入:ABCBAEEE输出:1分割一次ABCBA与EEE常规思路dp[i][j]=k表示从i=>j部分最少分割,那么最终所求为dp[0][len-1]求解过程为区间长度从2=》len 即先求解小区间问题。每一次求解过程将原区间分为两部分 左右最小分割数之和的最小值即为所求(若区间本身为回文串=》dp=0)时间复杂度为O(N3) 复杂度较高优化思路dp[i]=k表示

2021-01-12 18:02:40 33

原创 表达式求值-递归解法

文章目录给定一个字符串str,str表示一个公式,公式里可以有整数,加减乘除和左右括号,返回公式的计算结果(注意:题目中所有运算都是整型运算,向下取整,且保证数据合法,不会出现除0等情况)。输入48*((70-65)-43)+8*1输出-1816传统思路一般而言,表达式求值,先将中缀表达式转化为后缀表达式=》进一步进行求解本题采取,递归思路cal(string s,int k)表示从串s的第k个往后计算一个单位这里一个最小计算单位是,遇到右括号,或者遇到串结尾代码实现pa

2021-01-04 01:39:58 118

原创 构造回文:添加字符

题目描述给定一个字符串str,如果可以在str的任意位置添加字符,请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果。输入AB输出ABA思路采取动态规划的方式:dp[i][j]表示字符子区间[i=>j]构造成回文最少的添加字符数量那么存在以下的递推关系:如果str[i]==str[j]那么dp[i][j]=dp[i+1][j+1] 即如果区间首尾相等 那么只需要考虑内部即可如果str[i]!=str[j] 那么dp[i][j]=min(dp[i+1]

2021-01-01 02:45:16 129

原创 删除多余字符得到字典序最小序列

问题描述题目描述给一个全是小写字母的字符串str,删除多余字符,使得每种字符只保留一个,并且让最终结果字符串字典序最小。输入dbcacbca输出dabc思路首先统计各个字符出现的数目 int count[26]标记数组表明结果中是否包含当前字符 bool visit[26]对于新来的一个字符,如果已经在结果中那么跳过如果不在结果中,那么需要判断结果末尾的元素是否需要弹出,条件为:①末尾元素之后还存在剩余②末尾元素的字典序比当前字符字典序大待弹出一定的末尾元素后(或者不

2020-12-30 13:18:30 97

原创 Leetcode:单调栈_可见山峰问题

题目描述一个不含有负数的数组可以代表一圈环形山,每个位置的值代表山的高度。比如,{3,1,2,4,5},{4,5,3,1,2}或{1,2,4,5,3}都代表同样结构的环形山。3->1->2->4->5->3 方向叫作 next 方向(逆时针),3->5->4->2->1->3 方向叫作 last 方向(顺时针)。山峰 A 和 山峰 B 能够相互看见的条件为:如果 A 和 B 是同一座山,认为不能相互看见。如果 A 和 B 是不同的山,并且

2020-12-12 04:25:25 137

原创 单调栈结构

问题引出单调栈是这样一类结构,栈中的元素有序,例如一个单调递增栈,如果新来的元素比栈顶更大,那么入栈;如果新来的元素比栈顶更小,那么弹出若干栈顶元素,直到新来的元素能够入栈单调栈经典问题:条形图的最大矩形面积该问题,维护一个单调递增栈,如果新来的元素比栈顶小,那么开始一个count计数弹出。不断计算矩形面积:count*stack.top() 即使每次的矩形是top高度×当前矩形的长(count计数)。同时弹出count个元素,重新压入count+1个新元素(新元素使得前面部分减少:短板效

2020-12-10 17:33:32 82

原创 Leetcode 纸牌博弈:区间递增动态规划

题目描述给定一个整型数组arr,代表数值不同的纸牌排成一条线,玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左和最右的纸牌,玩家A和玩家B绝顶聪明。请返回最后的获胜者的分数。输入41 2 100 4输出101基本思路容易知道,当只有一张牌时,先拿的那个人获得这张牌的分数,后拿的人获得0分。进一步,若有arr[n]张牌,那么先拿的人可能有两种选择。拿第一张牌+剩下的牌中其为后拿牌的人拿最后一张牌+剩下的牌中其为后拿的人因此问题的动态规划方程为

2020-12-08 21:48:38 86

原创 数组划分k份:二分法

题目描述给定一个整型数组arr, 数组中的每个值都为正数,表示完成一个工作需要的时间,再给定一个整数num,表示工人的数量,每个工人只能完成连在一起的工作。所有工人并行工作,请返回完成所有的工作的最少时间。本题的问题可以理解为给定一个数组arr[] 将其尽可能的等分为k份,其中每一份中的最大值的最小值是多少?测试用例输入3 23 1 4输出4说明: 划分为[3 1]、[4]输入5 31 1 1 4 3输出4说明:划分为[1 1 1]、[4]、[3]本题思路最终

2020-12-05 12:14:27 193

原创 信号与不可重入

信号信号是软件中断。提供了一种处理异步事件的方法。例如当用户在终端输入中断键(ctrl+c),会向前台进程发送一个中止信号SIGINT,以此来中止一个进程。信号通常以SIG3个字符开头作为命名,例如SIGABRT是夭折信号;当进程调用abort函数时发出这种信号。SIGALARM是闹钟信号,由alarm函数设定的定时器超时后将产生这种信号。几种常见的信号类型:①当用户在终端输入某些键时,引起终端产生相应的信号。例如按下DELETE键或者Ctrl+C键将产生中断信号SIGINT。该信号用于停止一个

2020-12-05 00:37:17 88

原创 Manacher算法:避免从1开始

问题引出给定一个字符串str, 返回str中最长回文子串的长度str=“123”。其中的最长回文子串“1”或者“2”或者“3”,所以返回1。str=“abc1234321ab”。其中的最长回文子串“1234321”,所以返回7。如果str的长度为N,解决原问题的时间复杂度都达到O(N).输入描述:输入为一个字符串str输出描述:输出一个整数表示最长回文子串的长度此类问题与KMP算法类似,都是字符串匹配算法,KMP算法利用模式串的next数组,避免重复计算,其核心思想是:当匹配失

2020-12-04 02:16:10 50

原创 Leetcode 两个有序数组间相加的TopK

题目描述给定两个有序数组arr1和arr2,再给定一个整数k,返回来自arr1和arr2的两个数相加和最大的前k个,两个数必须分别来自两个数组按照降序输出输入描述:第一行三个整数N, K分别表示数组arr1, arr2的大小,以及需要询问的数接下来一行N个整数,表示arr1内的元素再接下来一行N个整数,表示arr2内的元素输出描述:输出K个整数表示答案输入5 41 2 3 4 53 5 7 9 11输出16 15 14 14对于TopK问题,例如经典的海量数组中

2020-12-04 00:16:09 480 1

原创 解决海量数据问题:分区表

分区表分区指的是将一个表或者索引分解为多个更小、更加容易管理的部分。从访问数据库的应用角度上看,它们只有一个逻辑表示,但在物理上表的记录可能划分为多个模块,也就是所谓的分区。Mysql支持水平分区,即将同一个表的不同行的记录划分到不同的物理文件中,暂时不支持垂直分区(将同一张表的记录按照列划分到不同的物理文件中)。而每一个分区中既存放着索引也存放着数据。Mysql支持的分区类型:Range分区:行数据基于一个给定连续区间的列的值,划分到不同分区。List分区:List分区与Range的

2020-12-02 00:37:58 62

正则式到最小化DFA

实现了从正则式子到NFA,NFA到DFA,并最小化DFA的过程,

2018-01-05

计算机图形学-Bezier与Bspline曲线,曲面

MIT计算机图形学作业 C++实现,Bezier曲线,Bspline曲线

2018-01-05

空空如也

空空如也

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

TA关注的人 TA的粉丝

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