本次的练习是:如下图1所示,有一组非连续的单元格区域,由任意数量的单列区域组成,每个区域中的值有数字、文本或空格。...要求从单元格A2开始,使用公式生成一个列表,这个列表由上述非连续单元格区域中所有只出现了一次的数字组成(如图1所示,1、2和9这三个数字在非连续的单元格区域中只出现了一次)。 ?...INDIRECT("1:"& MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT("1:" &MAX(RNG)+1))-1)=1),ROWS(A$2:A2))) 下拉直至出现空单元格为止...另一个函数是MAX函数,也可以操作多个、非连续的单元格区域,因此: MAX(RNG) 能够得到组成RNG的单元格区域中所有数值的最大值,忽略逻辑值、文本。很显然,其返回的结果是9。...小结 本示例展示了解决涉及到非连续单元格区域的问题的技术,以及哪些函数能够处理非连续单元格区域。此外,也讲解了AGGREGATE函数的使用技术。
1·有1千万条有重复的短信,以文本文件的形式保存,一行一条,也有重复。请用5 分钟时间找出重复出现最多的前10 条短信。? 正确解析如下......可以将1千万条短信分成若干组,进行边扫描边建散列表的方法。第一次扫描,取首字节、尾字节、中间任意两字节作为Hash Code,插入到hash table中,并记录其地址、信息长度和重复次数。...相同记录只加1次进hash table,但将重复次数加1。一次扫描以后,已经记录各自的重复次数,进行第二次hash table 的处理。用线性时间选择可在O(n)的级别上完成前10 条的寻找。...根据经验,除非是群发的过节短信,否则字数越少的短信,出现重复的概率越高。建议从字数少的短信开始找起,比如一开始搜个字的短信,找出重复出现的top10 并分别记录出现次数,然后搜两个字的,以此类推。...对于对相同字数的比较长的短信的搜索,除了hash 之类的算法外,可以选择只抽取头、中和尾等几个位置的字符进行粗判,因为此种判断方式是为了加快查找速度,但未必能得到真正期望的top10,因此,需要做标记,
只出现一次的数字 题目详情 代码(直接来异或) class Solution { public: int singleNumber(vector& nums) { //...根据:某个元素只出现一次 直接来异或 int ret=0; for(auto e:nums) { ret=ret^e;...,那么两次出现的数异或后结果为0;如果一个数只出现一次,那么异或后结果为该数本身。...利用上述性质,遍历nums中的所有元素,并进行异或运算,最终得到的结果就是只出现一次的元素。 2. 118....如果当前元素与上一个不重复元素不相同,就将当前元素放在上一个不重复元素的下一个位置,并将 pre_index 更新为当前的位置(新的不重复元素的位置) 最后返回 pre_index+1,即为不重复元素的数量
若采用常规的办法存储稀疏矩阵,则相当浪费存储空间,因此仅存储非零元素。但通常零元素的分布没有规律,所以仅存储非零元素的值是不够的,还要存储它所在的行和列。...数字 1-9 在每一行只能出现一次; 数字 1-9 在每一列只能出现一次; 数字 1-9 在每一个以粗实线分隔的 3×3 宫内只能出现一次。 ? 上图是一个部分填充的有效数独。...一个简单的解决方案是遍历该 9×9 数独三次,以确保: 行中没有重复的数字。 列中没有重复的数字。 3×3 子数独内没有重复的数字。 实际上,所有这一切都可以在一次迭代中完成。...检查每个单元格值是否已经在当前的行/列/子数独中出现过:如果出现重复,返回 False。如果没有,则保留此值以进行进一步跟踪。 返回 True。...对于矩阵的第二行而言,在旋转后,它出现在倒数第二列的位置。 对于矩阵的第三行和第四行同理。
支持引擎:InnoDB 行级锁定分为行共享读锁(共享锁)与行独占写锁(排他锁) 3、页级锁 对于行级锁与表级锁的折中,开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般...Read committed),没有脏读的问题,可能有不可重复度、幻读的问题 (3)可重复读(Repeatable read):没有脏读、不可重复度的问题,可能有幻读的问题 (4)可序列化(Serializable...):没有脏读、不可重复度、幻读的问题 (二)行锁 行级锁分为: 记录锁(Record lock):对索引项加锁,即锁定一条记录。...索引分为主键索引和非主键索引两种,如果一条sql语句操作了主键索引,MySQL就会锁定这条主键索引;如果一条语句操作了非主键索引,MySQL会先锁定该非主键索引,再锁定相关的主键索引。...如果系统并发量非常大,悲观锁会带来非常大的性能问题,选择使用乐观锁,现在大部分应用属于乐观锁 版本控制机制: 每一行数据多一个字段version,每次更新数据对应版本号+1, 原理:读出数据,将版本号一同读出
2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。 需保证 返回结果的字典序最小。 要求不能打乱其他字符的相对位置)。...大体过程如下: 1.初始化一个长度为 26 的整数数组 cnts,用于记录字符串中每个字母出现的次数。 2.初始化一个长度为 26 的布尔数组 enter,用于标记字母是否已经入栈。...3.遍历字符串 s 中的每个字符,统计每个字母出现的次数,并更新到 cnts 数组中。 4.初始化一个长度为 26 的字节数组 stack 作为栈,用于存储最终的结果。...6.2.如果 cur 还未入栈,则执行以下操作: 6.2.1.判断栈是否为空或者栈顶元素小于等于 cur,或者栈顶元素在剩余字符中不再出现时退出循环。...6.5.将 cur 的出现次数减一。 7.根据栈中的元素构造移除重复字母后的结果字符串,并将其返回。 总的时间复杂度:O(n),其中 n 是字符串 s 的长度。
锁机制 一、锁的粒度 表级锁: 对整张表加锁 开销小,加锁快,不会出现死锁 锁粒度大,发生锁冲突的概率高,并发度低 行级锁: 对表中某行记录加锁 开销大,加锁慢,会出现死锁...范围条件检索时: 使用非索引项检索,InnoDB使用表锁: 非索引项没有建立索引树,使用行锁的话需要遍历,效率太慢,所以InnoDB直接用表共享锁,将整个表锁住,如果想进行数据插入删除,需要获取排它锁...,此时会放弃使用索引,因此也不会使用行锁,而是使用表锁,比如对一些很小的表,MySQL就不会去使用索引 2、意向共享锁和意向排他锁 在绝大部分情况下都应该使用行锁,因为事务和行锁往往是选择InnoDB的理由...deadlock free 的, 这是因为 MyISAM 总是一次获得所需的全部锁,要么全部满足,要么等待,因此不会出现死锁 但在 InnoDB 中,除单个 SQL 组成的事务外,锁是逐步获得的,即锁的粒度比较小...: 可以解决脏读,但是无法解决不可重复读,MVCC对于每一次select都会生成新的快照,而快照中的数据都是经过事物正确commit后的数据 实现可重复读: 解决脏读,不可重复读,MVCC只会在第一次select
如果表中没有主键,MySQL会选择第一个唯一非空索引作为聚簇索引。如果连这样的索引都没有,MySQL会隐式地创建一个内部行ID来作为聚簇索引。 唯一性:聚簇索引必须是唯一的。...缺点: 插入速度严重依赖于插入顺序 ,按照主键的顺序插入是最快的方式,否则将会出现页分裂,严重影响性能。因此,对于InnoDB表,我们一般都会定义一个自增的ID列为主键。...由于数据的物理存储排序方式只能有一种,所以每个MySQL的表只能有一个聚簇索引。 如果没有为表定义主键,InnoDB会选择非空的唯一索引列代替。...非聚簇索引 特点 辅助索引:非聚簇索引是辅助索引,它独立于数据行的物理存储顺序。 键顺序:非聚簇索引存储的是索引键和指向数据行的指针(或行ID)。...这通常需要两次磁盘I/O操作:一次是查找索引,一次是查找数据行。
给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...================================ 关于此类的题目,提取有效信息,有序数组,应该想到利用双指针来进行处理; 我们需要跳过重复的元素,然后遇到非重复元素进行覆盖操作 解法1....return temp+1; 16 17 } 18 19 20 21 } 2.去重,可以利用map进行操作,以 array[i] — i, 进行存储,这样可以起到去重的效果...,然后我们遍历一遍数据,进行替换覆盖就可以了; 注意,hashmap是非顺序存储的,我们需要保证数组的有序排列,所以需要用到有存储顺序的linkedhashmap进行存储 这个实现有点慢,好歹也是自己第一次的解题思路
,那么只能使用其中之一的索引,具体使用哪个索引,要看mysql的统计信息,mysql执行计划中包括索引的选择,具体的选择要看哪个的索引选择率更高【唯一值/总记录数=选择率,0选择率选择率越大...使用哪个索引由相应索引项的选择率决定,最终判定标准是:扫描最少的行.使用索引过滤尽可能多的行。然后使用where中其他条件对 索引过滤后的结果集 一行行地判断 完成where条件过滤。...当查询结果比较大时,可以考虑这样设计 5.limit 分页查询 .limit 使用时必须排序否则可能出现不同页返回重复数据的风险。...由于正在读取的数据只获得了读取锁,读完之后就解锁,不管当前事务有没有结束,这样就容许其他事务修改本事务正在读取的数据。导致不可重复读。解决不可重复读的问题就要求,对正在读取的若干行加上行级锁。...尽管它会导致不可重复读、幻读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。
Lock)和间隙锁 (Gap Lock)的结合,⾏锁只能锁住已经存在的⾏,为了避免插⼊新⾏,需要依赖间隙锁。...Q9、数据库锁的类型 表级锁。表级锁锁的是整个表数据 行级锁:针对的是索引加锁。...脏读 更新丢失 不可重复读 幻读 RR级别怎么实现 RR级别是指可重复读,也就是在事务内对于一条数据,多次读取获得的结果都是一样的,原理是采用了MVCC机制+间隙锁 RR级别怎么做到的可重复读 使用MVCC...如果是之前很快,偶尔有一次很慢,可能是其他问题导致的 如果你查询的数据行刚好被加锁了,只能等待别人释放锁:show processlist查看 如果是一致都满,那大概率是这条sql有问题 的字段,从左往右依次匹配查询。遇到范围查询(>、<、between、like)则停止 尽量选择区分度高的列设置为索引。 索引列在查询时不要使用函数计算。
数据验证16注\:ctrl shift F:切换电脑简繁体输入count:计数(只能计数数字的格式,会忽略其它格式储存格)counta:计数,所有非空白格countif:计算符合条件的储存格数目,一次只能設定一个条件...:数据 数据验证 序列选择内容,公式 根据所选内容创建 最左端18将单元格中的内容分开:数据 分列 分隔符号 下一步 选择符号,注意只能有一列,可以多行还可以手动分割 固定宽度ctrl+方向键将光标移动到四个角落...6、下边,选取数据,然后找到想粘贴的表格,鼠标右键。7、找到选择性粘贴,单击出现以下情况。8、选择数值,然后粘贴,就不会出错了。...如下图所示:然后选择菜单栏的 “开发工具” ,点击 “宏”,打开宏 创建窗口,随便输入一个非数字开头的宏名,点击创建,如下图所示:再把下面的代码放到光标处For Each templ In ActiveDocument.ListTemplatesFor...然后更新应用再换回原来的行距(例如之前是1.5倍行距)再更新一次结果:解决不同段落中中英文间距不同问题问题:原因:有的段落设置了自动调整中英文间距,有的没有解决:如果数字出现上面的问题,最好下面那项也要勾选解决
匹配除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符 位置字符号(^和$) $ 表示字符串的结束位置 ^ 表示字符串的开始位置 选择符(|) 竖线符号(|...需要特别注意的是,如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次。...\S 匹配非空格的字符,相当于[^ \t\r\n\v\f]。 \b 匹配词的边界。 \B 匹配非词边界,即在词的内部。 重复类 模式的精确匹配次数,使用大括号({})表示。...{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次,默认匹配的是单个字符,若想要重复字符串,可以使用括号。...:表示某个模式出现0次或多次,匹配时采用非贪婪模式。 +?:表示某个模式出现1次或多次,匹配时采用非贪婪模式。
最适合索引的列是出现在WHERE子句中的列,或连接子句中指定的列,而不是出现在SELECT 关键字后的选择列表中的列。 使用惟一索引。考虑某列中值的分布。...主键不能有空值(非空+唯一),唯一索引可以为空。 主键可以是其他表的外键,唯一索引不可以。 一个表只能有一个主键,唯一索引 可以多个。 都可以建立联合主键或联合唯一索引。...eq_ref只能找到一行,而ref能找到多行。 4、ref 对于来自前面表的每一行,在此表的索引中可以匹配到多行。...适用于非唯一索引,可以返回重复值。...安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能 限制到某个行某个列,但是通过视图就可以简单的实现。
MVCC(Multi-Version Concurrent Control):多版本并发控制,只作用于RC和RR隔离级别,主要是为了避免脏读、非重复读,而非幻读,很多文章说通过MVCC避免幻读,其实这种说法是不完善的...采用RR隔离级别,结合MVCC特性,可以避免脏读、非重复读,有些文章说MVCC用来避免幻读,其实这是不准确的,MVCC通过多版本并发控制来避免非重复读,像幻读定义所说的情况即使有MVCC还是会存在。...想要真正避免幻读只能采取serializable串行化隔离级别,因为都要加表级共享锁或排他锁,所以性能会很差,一般不会采用。 MVCC如何避免非重复读: MVCC为查询提供了一个基于时间的点的快照。...,这里Session A的第一次、第二次读,均为快照读,而且是在同一个事务中。...出现死锁场景很多,绝大多数是高并发下同时操作一行数据,加锁顺序相反引起。 先删再插,两条insert当需要进行唯一性冲突检测时,需要先加一个S锁,也会产生死锁。
我们要计算的是重复子序列的出现概率,假如以 是一个三元重复子序列,那么它的出现概率就是序列 出现的概率: 因此所有的三元重复子序列的概率为: 这里的 表示逐位元素对应相乘。...是一个非负矩阵,根据非负矩阵的"Frobenius介值定理",我们有: 关于Frobenius介值定理,基本上在任何一本矩阵分析的书上都有介绍,它说的是"非负矩阵的最大特征值在它每一行的和的最小值于最大值之间...很简单,不能出现过高的概率值即可,比如某一行接近one hot的形式,那么平方之后依然接近one hot的形式,那么求和就接近1,远远大于理论最小值 。什么情况下会出现过高的概率值呢?...也不难理解,就是某个字词后面可以接的字词很少,甚至只有1个候选值的时候,比如"忐"几乎只能接"忐",那么 忐忑 就相当高,"矩"后面大概接"阵"、"形"比较多,所以"矩"那一行的方差也不小。...本文是对Seq2Seq重复解码现象的一次理论分析尝试,主要的篇幅是针对二元解码模型得出一些定量的结果,并且发现这些结果确实能解释一些现象,并且还能带来一些改进的思路,最后比较"勉强"地将二元解码与一般的自回归模型联系了起来
例如,事务A第一次读取数据时,事务B修改了相同的数据并提交,导致事务A第二次读取时数据不一致。幻读是指一个事务在多次查询中,由于其他事务插入或删除数据,导致查询结果出现新增或减少的情况。...调整事务隔离级别:数据库提供了不同的事务隔离级别,如读未提交、读已提交、可重复读和串行化。可以根据具体情况选择合适的隔离级别来避免并发问题。事务的基本特性和隔离级别有哪些?...读已提交(Read Committed):保证一个事务只能读取到其他事务已经提交的数据,解决了脏读问题。但是可能会出现不可重复读问题。...可重复读(Repeatable Read):保证在一个事务中多次读取同一数据时,得到的结果是一致的。解决了不可重复读问题。但是可能会出现幻读问题。...一个表只能有一个聚簇索引,如果没有显式指定主键,那么会找第一个unique字段当做主键索引,否则将会使用隐藏的rowid作为主键索引。非聚簇索引是索引值和表的数据分开存储的索引结构。
),或者说,InnoDB的数据文件本身就是主键索引文件,这样的索引被称为“聚簇索引”,一个表只能有一个聚簇索引。...辅助(非主键)索引: 这次我们以示例中学生表中的name列建立辅助索引,它的索引结构跟主键索引的结构有很大差别,在最底层的叶子结点有两行数据,第一行的字符串是辅助索引,按照ASCII码进行排序,第二行的整数是主键的值...会从表中选择数据不重复的列建立索引,如果没有符合的列,则 MySQL 自动为 InnoDB 表生成一个隐含字段作为主键,并且这个字段长度为6个字节,类型为整型。...❝ 那为什么推荐使用整型自增主键而不是选择UUID?...它用于替代效率较低的LIKE模糊匹配操作,而且可以通过多字段组合的全文索引一次性全模糊匹配多个字段。
),或者说,InnoDB的数据文件本身就是主键索引文件,这样的索引被称为“聚簇索引”,一个表只能有一个聚簇索引。...辅助(非主键)索引: 这次我们以示例中学生表中的name列建立辅助索引,它的索引结构跟主键索引的结构有很大差别,在最底层的叶子结点有两行数据,第一行的字符串是辅助索引,按照ASCII码进行排序,第二行的整数是主键的值...会从表中选择数据不重复的列建立索引,如果没有符合的列,则 MySQL 自动为 InnoDB 表生成一个隐含字段作为主键,并且这个字段长度为6个字节,类型为整型。...❝那为什么推荐使用整型自增主键而不是选择UUID?...它用于替代效率较低的LIKE模糊匹配操作,而且可以通过多字段组合的全文索引一次性全模糊匹配多个字段。
,最多只返回一行数据,const 查询速度非常快,因为它仅仅读取一次即可; eq_ref:此类型通常出现在多表的 join 查询,表示对于前表的每一个结果,都只能匹配到后表的一行结果,并且查询的比较操作通常是...=, 查询效率较高; ref:此类型通常出现在多表的 join 查询, 针对于非唯一或非主键索引, 或者是使用了 最左前缀 规则索引的查询; fulltext:全文索引检索,要注意,全文索引的优先级很高...,若全文索引和普通索引同时存在时,mysql不管代价,优先选择使用全文索引; ref_or_null:与ref方法类似,只是增加了null值的比较。...实际用的不多; unique_subquery:用于where中的in形式子查询,子查询返回不重复值唯一值; index_subquery:用于in形式子查询使用到了辅助索引或者in常数列表,子查询可能返回重复值...; index:全表扫描,只是扫描表的时候按照索引次序进行而不是行。
领取专属 10元无门槛券
手把手带您无忧上云