首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2021-05-19:给定一个非负数组成数组,长度一定大于1,想知道数组哪两个数&结果最大。返回这个最大结果。时间复杂度O

2021-05-19:给定一个非负数组成数组,长度一定大于1,想知道数组哪两个数&结果最大。返回这个最大结果。时间复杂度O(N),额外空间复杂度O(1)。...&结果在第30位上都不可能有1了 答案在第30位上状态一定是0, 保留剩余N个数,继续考察第29位,谁也淘汰(因为谁也不行,干脆接受30位上没有1事实) 如果有2个, 说明答案就是这两个数(直接返回答案...答案在第30位上状态一定是1, 只把这K个数作为剩余数,继续考察第29位,其他数都淘汰掉 ........现在来到i位,假设剩余数字有M个,看看这一位是1数,有几个 如果有0个、或者1个 说明不管怎么在M个数中选择,任何两个数&结果在第i位上都不可能有1了 答案在第i位上状态一定是0, 保留剩余M...答案在第i位上状态一定是1, 只把这K个数作为剩余数,继续考察第i-1位,其他数都淘汰掉。 代码用golang编写。

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL命名、设计及使用规范--------来自标点符《MySQL命名、设计及使用规范》

、如无备注,排序字段order_id在程序默认使用降序排列; 12、整形定义添加长度,比如使用INT,而不是INT[4] INT[M],M值代表什么含义?...在存储或检索过程不进行大小写转换。 VARCHAR列值为可变长字符串。长度可以指定为0到65,535之间值。(VARCHAR最大有效长度由最大行大小和使用字符集确定。...整体最大长度是65,532字节)。 同CHAR对比,VARCHAR值保存时只保存需要字符数,另加一个字节来记录长度(如果列声明长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。...索引基本规范 1、索引数量控制,单张表索引数量超过5个,单个索引字段数超过5个。 综合评估数据密度和分布 考虑查询和更新比例 为什么一张表不能存在过多索引?...2、对字符串使用前缀索引,前缀索引长度超过8个字符,建议优先考虑前缀索引,必要时可添加伪列并建立索引。

5.6K20

大佬整理mysql规范,分享给大家

order_id在程序默认使用降序排列; 整形定义添加长度,比如使用INT,而不是INT[4] INT[M],M值代表什么含义?...VARCHAR列值为可变长字符串。长度可以指定为0到65,535之间值。(VARCHAR最大有效长度由最大行大小和使用字符集确定。整体最大长度是65,532字节)。...索引基本规范 索引数量控制,单张表索引数量超过5个,单个索引字段数超过5个。 综合评估数据密度和分布 考虑查询和更新比例 为什么一张表不能存在过多索引?...对字符串使用前缀索引,前缀索引长度超过8个字符,建议优先考虑前缀索引,必要时可添加伪列并建立索引。...: select * from test_union1 union select * from test_union2 这个SQL在运行时先取出两个表结果,再用排序空间进行排序删除重复记录,最后返回结果

1K20

mysql表设计规范

、订单号等 小数类型,金额,选择decimal一定要选用bidecimal,shigen在这个上边填了前人写巨大bug!...存储字符长度几乎相等,使用char定长字符串类型varchar可变长度字符串,长度不要超过5000如果存储值太大,将字段类型修改为text,同时单独一张表,用主键与之对应选择合适字段长度优化数据存储空间...,一般要加索引单表索引超过5个区分度不高字段,添加索引(性别)避免索引失效情况(mysql内置函数)索引过多,选用联合索引优化不使用外键关联使用外键存在性能问题、并发死锁问题、使用起来不方便等...每次delete、update都必须考虑外键约束分库分表不能使用不建议使用存储过程、触发器存储过程:已预编译为一个可执行过程一个或多个sql语句触发器:一段代码,当触发某个事件时,自动执行这些代码可以用数据库相关联表实现级联修改实现监控某张表某个字段改变而需要做出相应处理生成某些业务编号滥用造成数据库和应用程序维护困难...mysql对于存储过程、触发器等还不是很成熟,没有完善出错记录处理,建议使用sql编写优化经验查询尽量不要使用select *查询结果只要一条或者只要最大/小一条记录,建议使用limit 1避免

20530

SQL语言快速入门

注意,所有的SQL语句在结尾处都要使用“;”符号。 使用SQL语句创建数据库表格和表格名称必须以字母开头,后面可以使用字母,数字或下划线,名称长度不能超过30个字符。...SQL语言中较为常用数据类型为: char(size):固定长度字符串,其中括号size用来设定字符最大长度。Char类型最大长度为255字节。...varchar(size):可变长度字符串,最大长度由size设定。 number(size):数字类型,其中数字最大位数由size设定。 Date:日期类型。...Primary key则为表格所有记录规定了唯一标识符。 向表格插入数据 SQL语言使用insert语句向数据库表格插入或添加数据行。...通常情况下,HAVING从句被放置在SQL命令结尾处。 ALIAS 下面,我们重点介绍一下如何在SQL命令设定别名。SQL语言中一般使用两种类型别名,分别为字段别名和数据表别名。

1.8K20

mysql架构sql基础

,约束列可以插入什么数据 整形,小数,字符串 整形 tinyint 占用1字节 无符号范围0~255 有符号范围 -128~127 数据长度3 #不能存到-255 smallint 占用2字节...定点数 能够爆炸数据精确小数 (小数部分可能不精确,超出长度会四舍五入),整数部分一定精确 decimal(m,d) M表示总长度,最大值不能超过65,d代表小数部分长度,最长不能超过30 字符串...char char 定长字符 指定长度,系统一定会分配指定空间用于存储数据 基本语法 char(L) 代表字符数(中文于英文字母一样) L长度0-255 超过最大长度就不能定义了, varchar...) 如果数据长度超过255个字符(大字段) 不论是否固定长度 都会使用text(对于b树索引不支持) 不在使用char和varchar 使用varchar 行格式 compact (索引前缀长度不能超过...'; ##生产需求在表一个列添加索引 alter table stu_1 add index i_sname(sname); ##删除表 drop table stu_1; ##清空表数据(表中所有的数据行

86131

MySQL开发规范

一、命名规范 库名、表名、字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过...,支持事务,行级锁,更好恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好 表字符集使用utf8mb4( 5.5.3版本以上支持) 所有表都需要添加注释,单表数据量建议控制在1000...单张表索引数量超过5个 单个索引字段数超过5个 对字符串使用前缀索引,前缀索引长度超过10个字符;如果有一个 CHAR(200)列,如果在前10个字符内,多数值是惟一,那么就不要对整个列进行索引...用DECIMAL代替FLOAT和DOUBLE存储精确浮点数 浮点数相对于定点数优点是在长度一定情况下,浮点数能够表示更大数据范围;浮点数缺点是会引起精度问题 将字符转化为数字 使用...,拆分成小SQL 充分利用querycache 充分利用多核CUP 使用in代替or,in超过1000个 禁止使用order by , rand() 因为order by,rand

80810

必要商城MySQL开发规范

一、命名规范 库名、表名、字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过...,支持事务,行级锁,更好恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好 表字符集使用utf8mb4( 5.5.3版本以上支持) 所有表都需要添加注释,单表数据量建议控制在1000...单张表索引数量超过5个 单个索引字段数超过5个 对字符串使用前缀索引,前缀索引长度超过10个字符;如果有一个 CHAR(200)列,如果在前10个字符内,多数值是惟一,那么就不要对整个列进行索引...用DECIMAL代替FLOAT和DOUBLE存储精确浮点数 浮点数相对于定点数优点是在长度一定情况下,浮点数能够表示更大数据范围;浮点数缺点是会引起精度问题 将字符转化为数字 使用...,拆分成小SQL 充分利用querycache 充分利用多核CUP 使用in代替or,in超过1000个 禁止使用order by , rand() 因为order by,rand

66610

MySQL行格式原理深度解析

MySQL行格式(Row Format)是指存储在数据库表数据物理格式。它决定了数据是如何在磁盘上存储,以及如何在查询时被读取和解析。...在InnoDBDynamic行格式下,处理变长数据类型(VARCHAR、TEXT和BLOB)需要存储额外信息来追踪实际数据长度,因为这些字段存储数据字节数是固定: 1....因此,即使 VARCHAR 字段长度定义为 16383 个字符,实际存储这些字符所需字节数也可能远远超过这个数值。...总的来说,虽然VARCHAR(M)M值可以很大,但由于多种因素(包括字符集、InnoDB记录结构和行格式等)限制,实际可存储字符数可能会远小于M。 六、为什么开发规范推荐NULL?...避免歧义:NULL在SQL是一个特殊值,表示“未知”或“不存在”。它不同于空字符串或0,而且在进行比较和计算时,NULL会导致一些意想不到结果。避免使用NULL可以减少这种歧义。

23110

SQL 通配符及其使用

Sql Server通配符使用 通配符_ "_"号表示任意单个字符,该符号只能匹配一个字符."_"可以放在查询条件任意位置,且只能代表一个字符.一个汉字只使用一个"_"表示....通配符% "%"符号是字符匹配符,能匹配0个或更多字符任意长度字符串.在SQL语句中可以在查询条件任意位置放置一个%来代表一个任意长度字符串.在查询条件时也可以放置两个%进行查询,但在查询条件中最好不要连续出现两个...% 通配符[] 在模式查询可以利用"[]"来实现查询一定范围数据.[]用于指定一定范围内任何单个字符,包括两端数据 通配符[^] [^]用来查询不属于指定范围 ([a-f]) 或集合 ([abcdef...如果指定 ESCAPE 和转义符,SQL Server 将返回所有含字符串 30 行。...下例说明如何在 pubs 数据库 titles 表 notes 列搜索字符串"50% off when 100 or more copies are purchased": Select notes

2.9K40

设计数据库中常见规范

,int,bigint开始选择 小数类型金额,则使用decimal,禁止使用float和double 如果存储字符长度几乎相等,使用char定长字符串类型 archar是可变长字符串...,预先分配空间,长度不要超过500 如果存储值太大,建议字段类型修改为text,同时抽出单独一张表,用主键与之对应 同一表,所有varchar字段长度加起来,不能大于65535,如果又这样需求...合适字段长度 在MySQL, varchar 和 char 类型表示字符长度,而其他类型表示长度都表示字节长度。...否则设计表时候,如果有查询条件字段,一般就要加索引 索引使用注意事项: 索引不要建太多,一般单索引个数不要超过5个 去分度不高字段,不能加索引,:性别 索引建立完成后,还是要避免索引失效情况...索引过多的话,可以通过联合索引方式来优化,然后的话,索引还有一些规则,覆盖索引,最左匹配原则等等 避免使用MySQL保留字 如果有MySQL保留着,可能会使得SQL语句编写,SHELL脚本变量转义变得非常复杂

1.5K91

MySQL规范

统一字符集可以避免由于字符集转换产生乱码,不同字符集进行比较之前需要进行转换会造成索引失效 所有表和字段都需要添加注释 使用comment从句添加表和列备注,从一开始就进行数据字典维护 尽量控制单表数据量大小...索引设计规范 限制每张表上索引数量,建议单张超过5个 禁止给表每一列都建立单独索引 每个Innoodb表必须有个主键 常见索引列建议 1、出现在SELECT、UPDATE、DELETE...a like '%123%',(如果无前置%,只有后置%,是可以用到列上索引) 一个SQL只能利用到复合索引一列进行范围查询 :有 a,b,c列联合索引,在查询条件中有a列范围查询,则在...子查询性能差原因: 1、子查询结果集无法使用索引,通常子查询结果集会被存储到临时表,不论是内存临时表还是磁盘临时表都不会存在索引,所以查询性能会受到一定影响; 2、特别是对于返回结果集比较大子查询...同时对于关联操作来说,会产生临时表操作,影响查询效率Mysql最多允许关联61个表,建议超过5个。

1.3K20

SQL函数 %SQLSTRING

SQL函数 %SQLSTRING将值排序为字符排序规则函数。...描述%SQLSTRING 将表达式转换为按(区分大小写)字符串排序格式。 %SQLSTRING 从字符串中去除尾随空格(空格、制表符等),然后在字符开头添加一个前导空格。...这个附加空格强制将 NULL 和数值作为字符串进行整理。从数字删除前导零和尾随零。因为 %SQLSTRING 将空格附加到所有值,所以它将 NULL 值整理为空格,字符长度为 1。...这意味着 ORDER BY 和比较操作仅评估截断索引字符串。这种截断对于对超过下标的最大字符长度字符串进行索引特别有用。使用 maxlen 参数,如果需要对长字段进行索引,可以使用截断长度参数。...%SQLSTRING 在转换表达式后执行 maxlen 截断;如果 maxlen 超过转换后表达式长度,则不添加填充。

1.1K20

数据库设计规范

当索引名超过32字符时,可用缩写来减少索引名长度description –> desc;information –> info;address –> addr等。...如果遇到EMOJ等表情符号存储需求,可申请使用UTF8MB4字符集 2.3 所有表都要添加注释,除主键外字段都需要添加注释 类status型需指明主要值含义,’0-离线,1-在线’ 2.4...又因为它是记录log,所以也不方便调试性能问题。如果使用过程,一定考虑如果执行失败情况。...4.6 前缀索引 对超过30个字符长度列创建索引时,考虑使用前缀索引,idx_cs_guid2 (cs_guid(26))表示截取前26个字符做索引,既可以提高查找效率,也可以节省空间 前缀索引也有它缺点是...5.11 IN内容尽量超过200个 超过500个值使用批量方式,否则一次执行会影响数据库并发能力,因为单SQL只能且一直占用单CPU,而且可能导致主从复制延迟。

87120

SQL函数 %SQLUPPER

%SQLUPPER 将表达式转换为排序为(区分大小写)大写字符格式。 %SQLUPPER 将所有字母字符转换为大写,从字符串中去除尾随空格(空格、制表符等),然后在字符串开头添加一个前导空格。...因为 %SQLUPPER 将空格附加到所有值,所以它将 NULL 值作为空格进行整理,字符长度为 1。 %SQLUPPER 将任何仅包含空格(空格、制表符等)值整理为 SQL字符串 ('')。...这意味着 ORDER BY 和比较操作仅计算截断索引字符串。这种截断对于对超过下标的最大字符长度字符串进行索引特别有用。使用 maxlen 参数,如果需要对长字段进行索引,可以使用截断长度参数。...%SQLUPPER 转换表达式后执行 maxlen 截断;如果 maxlen 超过转换后表达式长度,则不添加填充。最大字符长度为 3,641,144 个字符; maxlen 没有强制执行最大值。...不要在其他用户访问表数据时重建索引。这样做可能会导致查询结果不准确。其他大小写转换函数%SQLUPPER 函数是 SQL 中转换数据值以进行区分大小写比较或排序规则首选方法。

1.4K10

hive 数据类型_sv数据类型

大家好,又见面了,我是你们朋友全栈君。 本篇来学习一下Hive数据类型,以及如何在Hive SQL中去处理这些数据类型。...* from datatype_test1; 结果如下: 2、字符串类型 Hive字符串类型包含如下三种: 数据类型 长度 示例 STRING – ‘abc’ VARCHAR 1-65535 ‘...abc’ CHAR 1-255 ‘abc’ 对于VARCHAR创建时需指定长度,如果插入字符超过了指定长度,则会被截断,尾部空格也会作为字符一部分,影响字符比较。...对于CHAR类型来说,它是固定长度,如果插入字符长度不如指定长度,则会用空格补齐。但是尾部空格不影响字符比较。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.1K30

21个MySQL表设计经验准则

如果存储字符长度几乎相等,使用 char 定长字符串类型。 varchar是可变长字符串,预先分配存储空间,长度不要超过5000。...选择合适字段长度 先问大家一个问题,大家知道数据库字段长度表示字符长度还是字节长度嘛? 其实在mysql,varchar和char类型表示字符长度,而其他类型表示长度都表示字节长度。...物理删除:把数据从硬盘删除,可释放存储空间 逻辑删除:给数据添加一个字段,比如is_deleted,以标记该数据已经逻辑删除。...即使SQL命中了索引,如果表数据量超过一千万的话,查询也是会明显变慢。这是因为索引一般是B+树结构,数据千万级别的话,B+树高度会增高,查询就变慢啦。...21. sqL 编写一些优化经验 最后的话,跟大家聊来一些写SQL经验吧: 查询SQL尽量不要使用select *,而是select具体字段 如果知道查询结果只有一条或者只要最大/最小一条记录,建议用

1.1K21
领券