索引

滑动窗口的最大值

浪子不回头ぞ 提交于 2020-03-25 21:43:22
滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。 使用一个队列做小标索引, 保存窗内最大值的下标, 还要判断这个索引是否在当前窗内 class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector<int> ret; if ((num.size() >= size ) && (size > 0)) { deque<int> index; // 用于存放下标的索引 for (auto i = 0; i < size; i++) { // 存放前size个中的最大值 // 重复元素只存储一份, 所以用大于等于号 while ((! index.empty(

Java学习day29-List集合

浪子不回头ぞ 提交于 2020-03-25 20:42:21
一、List和ArrayList 1.List代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引。 2.List允许使用重复元素,可以通过索引来访问指定位置的集合元素。 3.List默认按元素的添加顺序设置元素的索引。 4.List集合里添加了一些根据索引来操作集合元素的方法。 Collection接口<—(继承)—List接口<—(实现)—ArrayList类 package day16; import java.util.ArrayList; import java.util.List; public class Test5 { public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("b");//第一个,索引下标就是0,List默认按元素的添加顺序设置元素的索引。 list.add("d");//索引下标1 list.add("c");//索引下标2 list.add("a");//索引下标3 list.add("d");//索引下标4,.List允许使用重复元素 System.out.println(list); System.out.println(list.get(2));//List可以通过索引来访问指定位置的集合元素

MySQL索引的创建、删除和查看

一个人想着一个人 提交于 2020-03-25 14:59:57
3 月,跳不动了?>>> 1 .索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有 3 个未索引的表 t1 、 t2 、 t3 ,分别只包含列 c1 、 c2 、 c3 ,每个表分别含有 1000 行数据组成,指为 1 ~ 1000 的数值,查找对应值相等行的查询如下所示。 SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为 1000 行,每行包含 3 个相等的值。在无索引的情况下处理此查询,必须寻找 3 个表所有的组合,以便得出与 WHERE 子句相配的那些行。而可能的组合数目为 1000 × 1000 × 1000 (十亿),显然查询将会非常慢。 如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询处理如下。 ( 1 )从表 t1 中选择第一行,查看此行所包含的数据。 ( 2 ) 使用表 t2 上的索引,直接定位 t2 中与 t1 的值匹配的行。类似,利用表 t3 上的索引, 直接定位 t3 中与来自 t1 的值匹配的行。 ( 3 )扫描表 t1 的下一行并重复前面的过程,直到遍历 t1 中所有的行。 在此情形下,仍然对表 t1 执行了一个完全扫描

主键与索引

为君一笑 提交于 2020-03-25 12:26:20
3 月,跳不动了?>>> 唯一索引 :该字段没有重复值,但允许空值(该字段可以有多个null值) ,一张table只允许一个主键,但可以创建多个unique index 函数索引: 如果在我们的查询条件使用了函数,那么索引就不可用了。可以用建立函数索引的方式,来解决这个问题   例如:    select * from product where nvl(price,0.0)>1000.0 ;    这里,nvl(price,0.0)使用了函数,索引不能利用price字段上做的索引了   我们来创建函数索引    create index index_price on product(nvl(price,0.0)); 其他: 1. 创建表时,不能在同一个字段上建立两个索引(主键默认建立唯一索引) 。 2. 唯一索引能极大的提高查询速度,而且还有唯一约束的作用。一般索引,只能提高30%左右的速度 经常插入,修改,应在查询允许的情况下,尽量减少索引,因为添加索引,插入,修改等操作,需要更多的时间 3. 主键一定是唯一性索引,唯一性索引并不一定就是主键。 4. 一个表中可以有多个唯一性索引,但只能有一个主键。 5. 主键列不允许空值,而唯一性索引列允许空值。 主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中 来源: oschina 链接:

Lucene.net常用功能说明

自古美人都是妖i 提交于 2020-03-25 12:03:27
Lucene.net是一个.net下的全文检索类库。配置简单,功能丰富,比较成熟。我在项目中用Lucene.net有一段时间了,这里我把常用一些功能写出来,与大家一起分享。 Lucene.net用的是3.0版本,分词采用盘古分词。示例程序用VS2010进行编译。 1 索引 在做索引时,有些参数是需要配置的,下面介绍下常用的参数配置。 1) 数据类型,如整形、时间、字符。 每种类型生成的索引方式都是不同的。比如:字符串需要分词,整形数据则不需要。生成索引的方式会影响到检索,如果整形按照字符串的方式生成索引,则比较不容易实现区域检索:如,ID>1000 and ID<2000。 时间索引比较特殊一些。Lucene.net无法对时间字段进行排序和区域检索,所以,要把时间字段转成长整形来实现。时间索引参考如下代码: var time = DateTime.Now; var timeField = new NumericField("Publish", Field.Store.YES, true).SetLongValue(time.Ticks); 2) 是否存储元数据。 如果进行存储,Lucene则会把索引数据与元数据同时进行存储。 好处:取数据比较容易。 坏处:索引比较大,可能会影响检索的速度 3) 是否进行排序 Lucene.net是支持排序的,包括整形排序、时间排序、字符串排序。

MyISAM 和 InnoDB

。_饼干妹妹 提交于 2020-03-25 08:22:39
3 月,跳不动了?>>> InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具 体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比 InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。   以下是一些细节和具体实现的差别:   ◆1.InnoDB不支持FULLTEXT类型的索引。   ◆2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。   ◆3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。   ◆4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。   ◆5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表

DB-数据库:百科

回眸只為那壹抹淺笑 提交于 2020-03-25 05:58:53
ylbtech-DB-数据库:百科 数据库,简而言之可视为 电子化的文件柜 ——存储电子文件的处所,用户可以对文件中的 数据运行新增、截取、更新、删除等操作 。 所谓“数据库”是 以一定方式储存在一起、能与多个用户共享、具有尽可能小的 冗余度 、 与应用程序彼此独立的数据集合 。 1. 返回顶部 1、 简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 数据集管理系统 数据库管理系统 (英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统, 一般具有存储、截取、安全保障、备份等基础功能 。数据库管理系统可以依据它所支持的 数据库模型 来作分类,例如 关系式、 XML ;或依据所支持的计算机类型来作分类,例如 服务器群集、移动电话 ;或依据所用查询语言来作分类,例如 SQL 、 XQuery ;或依据性能冲量重点来作分类,例如 最大规模、最高运行速度 ;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。 类型 关系数据库 MySQL MariaDB (MySQL的代替品

MySQL入门详解(二)

删除回忆录丶 提交于 2020-03-25 01:58:45
MySQL事务 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在一个商城系统中,用户执行购买操作,那么用户订单中应该加一条,库存要减一条,如果这两步由于意外只进行了其中一步那么就会发生很大的问题。而事务可以很好的解决这个问题。 事务是数据库处理操作,其中执行就好像它是一个单一的一组有序的工作单元。换言之在组内每个单独的操作是成功的,那么一个事务才是完整的。如果事务中的任何操作失败,整个事务将失败。 事务性质: 原子性:确保工作单位中所有操作都成功完成;否则,事务被中止,在失败时会回滚到事务操作以前的状态。 一致性:可确保数据库在正确的更改状态进行一个成功的提交事务。 隔离性:使事务相互独立的操作。 持久性:确保了提交事务的结果或系统故障情况下仍然存在作用。 TCL(事务控制语言): begin; 操作; commit; BEGIN或START TRANSACTION; #显式地开启一个事务 COMMIT;或COMMIT WORK; #二者等阶。COMMIT会提交事务并使已对数据库进行的所有修改成为永久性的。未COMMIT的操作都存放在内存中,仅当前客户端可以查看到,其他客户端看不到,当前客户端关闭后就清空了 ROLLBACK;或ROLLBACK WORK; #二者等阶。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改 SET AUTOCOMMIT=0

列表的语法

谁说胖子不能爱 提交于 2020-03-24 15:00:51
列表也有索引,切片,for循环 列表是可变类型 list.append() 在最后一位增加, list.insert(1,xxx) 在1的位置添加xxx,原元素往后移一位 list.extend() 迭代增加,也可理解为for循环增加,可以用列表来实现多个元素添加 list.pop() 默认删除最后一个,也可以加索引来进行删除索引位置的元素 list.remove("") 删除一个指定元素 list.clear() 清空列表 del list[] 删除,通过索引来删除,也可以通过切片来删除 list[] 更改,通过给索引直接重新赋值来实现更改 list[0,2] 切片更改是迭代更改,通过加[]来加入,如果加入步长要注意更改的个数 list.count("xxx") 列表中xxx出现的次数 list.sort() 排序,默认为升序 list.sort(reverse=True) 排序为降序 list.reverse() 反转列表 len(list) 列表的长度 range(1,10) 创建一个0到9的列表,顾头不顾尾,也可以使用步长 "_".join() 列表中的元素用_连接 """ for i in range(len(list)): print(list[i]) i就是索引 """ 列表可以进行相互嵌套 来源: https://www.cnblogs.com/nieice/p

图形数据库Neo4j基本了解

二次信任 提交于 2020-03-24 14:30:06
3 月,跳不动了?>>> 原文出处 : http://www.yund.tech/zdetail.html?type=1&id=f519df57f29b22863d2a6a79326bd22b 作者 :jstarseven 在深入学习图形数据库之前,首先理解属性图的基本概念。一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图。顶点也称作节点(Node),边也称作关系(Relationship);在图形中,节点和关系是最重要的实体,所有的节点是独立存在的,为节点设置标签,那么拥有相同标签的节点属于一个分组,一个集合;关系通过关系类型来分组,类型相同的关系属于同一个集合。关系是有向的,关系的两端是起始节点和结束节点,通过有向的箭头来标识方向,节点之间的双向关系通过两个方向相反的关系来标识。节点可有零个,一个或多个标签,但是关系必须设置关系类型,并且只能设置一个关系类型。Neo4j图形数据库的查询语言是Cypher,用于操作属性图,是图形语言中事实上的标准。 一、图形数据库的基本概念 Neo4j创建的图(Graph)基于属性图模型,在该模型中,每个实体都有ID(Identity)唯一标识,每个节点由标签(Lable)分组,每个关系都有一个唯一的类型,属性图模型的基本概念有: 实体(Entity) 是指节点(Node