last

PTA6-2 顺序表操作集 (20分)

孤人 提交于 2019-12-24 06:29:18
PTA6-2 顺序表操作集 (20分) 函数接口定义: List MakeEmpty ( ) ; Position Find ( List L , ElementType X ) ; bool Insert ( List L , ElementType X , Position P ) ; bool Delete ( List L , Position P ) ; 其中 List 结构定义如下: typedef int Position ; typedef struct LNode * List ; struct LNode { ElementType Data [ MAXSIZE ] ; Position Last ; /* 保存线性表中最后一个元素的位置 */ } ; 各个操作函数函数定义为: List MakeEmpty() :创建并返回一个空的线性表; Position Find( List L, ElementType X ) :返回线性表中X的位置。若找不到则返回ERROR; bool Insert( List L, ElementType X, Position P ) :将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false; bool Delete(

SA & SAM

删除回忆录丶 提交于 2019-12-23 22:13:54
后缀数组SA \(sa[i]\) 与 \(rk[i]\) \(sa[i]\) 表示排名为 \(i\) 的后缀是哪一个(在原串中开头位置)。 \(rk[i]\) (或 \(rank[i]\) )表示开头位置是 \(i\) 的后缀的排名。 两者是互相映射关系,即 \(sa[rk[i]] = i\) 。 后缀排序(倍增) 假设我们求出了只考虑长度为 \(w\) 的每一个后缀的前缀的 \(sa\) 和 \(rk\) ,怎么求考虑长度为 \(2w\) 的每一个后缀的前缀的 \(sa\) 和 \(rk\) . 对于两个后缀 \(i\) 和 \(j\) , 由于我们求出了在 \(w\) 下的 $sa $ 和 \(rk\) ,实际上可以通过比较两个二元组 \((rk_i,rk_{i+w}),(rk_j, rk_{j+w})\) 来确定大小关系,这里定义一个后缀 \(i\) 的两维度:第一维字符串 \([i...i+w-1]\) ,第二维字符串 \([i+w,i+2w-1]\) 。 为了方便实现以及减小常数,我们开一个辅助数组 \(tmp[i]\) 表示上一轮排序(长度 \(w\) ),排名为 \(i\) 的后缀的长度为 \(w\) 的前缀对应的是现在的哪一个后缀的第二维, \(tmp\) 可以由 \(w\) 下的 \(sa\) 求得。 cnt = 0; for (int i = n - w + 1

jQuery

若如初见. 提交于 2019-12-23 21:55:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 基本选择器 选择器 实例 选取 元素选择器 $("p") 在页面中选取所有 <p> 元素 #id 选择器 $("#test") 页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器 .class 选择器 $(".test") 通过指定的 class 查找元素 层次选择器 选择器 实例 选取 parent > child $("div > p") <div> 元素的直接子元素的所有 <p> 元素,只选择子元素的 parent descendant $("div p") <div> 元素的后代的所有 <p> 元素,包含子元素、孙子元素 element + next $("div + p") 每个 <div> 元素相邻的同级的下一个 <p> 元素 element ~ siblings $("div ~ p") <div> 元素同级的所有 <p> 元素 $("#two").siblings("div") 选择 id 为 two 的元素所有 div 兄弟元素 $("#one").nextAll("span:first") 选择 id 为 one 的下一个 span 元素 $("#two").prevAll("div") 选择 id 为 two 的元素前边的所有的 div 兄弟元素

[推荐]ORACLE SQL:经典查询练手第五篇(不懂装懂,永世饭桶!)

夙愿已清 提交于 2019-12-22 16:11:01
[ 推荐 ] ORACLE SQL : 经典查询练手第五篇 ( 不懂装懂,永世饭桶! ) —— 通过知识共享树立个人品牌。 本文与大家共同讨论与分享 ORACLE SQL 的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与分享才能共同进步嘛,感谢! 接上四篇 : [ 推荐 ]ORACLE SQL :经典查询练手第一篇 [ 推荐 ]ORACLE SQL :经典查询练手第二篇 [ 推荐 ]ORACLE SQL :经典 查询练手第三篇 [ 推荐 ]ORACLE SQL :经典查询练手第四篇 本篇数据查询属于复杂业务,难度比较高 ,请继续努力,通过我为大家设立的这个系列,循序渐进,只要你对每一篇,每一个试题都实践测试,认真练习。我相信你对常用、经典的、复杂的 SQL 已能熟能生巧,信手拈来! 本文使用 ORACLE自带的人力资源(HR)实例数据,本文所用表结构如下: 表名:REGIONS 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 REGION_ID NUMBER 是 否 2 REGION_NAME VARCHAR2 25 是 表名:COUNTRIES 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 COUNTRY_ID CHAR 2 是

收集oracle统计信息

廉价感情. 提交于 2019-12-22 08:20:44
注意,无论gather stale还是gather auto,都要求进行监视。 如果你执行一个alter table xxx monitoring命令,Oracle会用dba_tab_modifications视图来跟踪发生变动的表。 这样一来,你就确切地知道,自从上一次分析统计数据以来,发生了多少次插入、更新和删除操作。 SELECT * FROM Sys.Dba_Tab_Modifications WHERE Table_Owner = 'SCOTT'; 使用alter table xxx monitoring命令来实现Oracle表监视时,需要使用dbms_stats中的auto选项。 auto选项根据数据分布以及应用程序访问列的方式(例如通过监视而确定的一个列的工作量) 来创建直方图。使用method_opt=>’auto’类似于在dbms_stats的option参数中使用gather auto。 begin dbms_stats.gather_schema_stats(ownname => 'SCOTT', estimate_percent => dbms_stats.auto_sample_size, method_opt => 'for all columns size auto', degree => 7); end; estimate_percent选项

数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现

不打扰是莪最后的温柔 提交于 2019-12-22 05:32:25
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 数据结构图文解析之:树的简介及二叉排序树C++模板实现. 数据结构图文解析之:AVL树详解及C++模板实现 数据结构图文解析之:二叉堆详解及C++模板实现 1. 线性表简介 线性表是一种线性结构,它是由零个或多个数据元素构成的 有限序列 。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱,序列尾元素没有直接后继。 数据结构中常见的线性结构有数组、单链表、双链表、循环链表等。线性表中的元素为某种 相同 的抽象数据类型。可以是C语言的内置类型或结构体,也可以是C++自定义类型。 2. 数组 数组在实际的物理内存上也是连续存储的,数组有上界和下界。C语言中定义一个数组: 数组下标是从0开始的,a[0]对应第一个元素。其中,a[0]称为数组a的下界,a[6]称为数组a的上届。超过这个范围的下标使用数组,将造成 数组越界错误 。 数组的特点是: 数据连续,支持快速随机访问。 数组分为固定数组与动态数组。其中固定数组的大小必须在编译时就能够确认,动态数组允许在运行时申请数组内存。复杂点的数组是多维数组

longest-substring-with-at-least-k-repeating-characters

前提是你 提交于 2019-12-22 03:15:11
https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/ public class Solution { public int longestSubstring(String s, int k) { // Find count of each char HashMap mp = new HashMap(); Object intObj; for (int i=0; i<s.length(); i++) { char ch = s.charAt(i); intObj = mp.remove(ch); int st = 0; if (intObj != null) { st = (int) intObj; } st++; mp.put(ch, st); } // prepre iterate secondly int ret = 0; int last = -1; HashMap newMp = new HashMap(); // iterate secondly for (int i=0; i<s.length(); i++) { char ch = s.charAt(i); int num = (int)mp.get(ch); // pass if num fits

sql to_char 日期转换字符串

喜你入骨 提交于 2019-12-22 01:07:30
sql to_char 日期转换字符串 1、转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(‘2004-11-27’,‘yyyy-mm-dd’),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。 如;to_date(‘2004-11-27 13:34:43’, ‘yyyy-mm-dd hh24:mi:ss’) 将得到具体的时间 多种日期格式: YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三位字符的月份缩写 WW:一年中的星期 D:星期中的第几天 DD:月份中的第几天 DDD:年所中的第几天 DAY:九个字符表示的天的全称,右边用空格补齐 HH,HH12:一天中的第几个小时,12进制表示法 HH24:一天中的第几个小时,取值为00~23 MI:一小时中的分钟 SS:一分钟中的秒 SSSS:从午夜开始过去的秒数 to_char():将日期转按一定格式换成字符类型 SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) time from dual; TIME 2004

Elasticsearch 同步mysql数据

守給你的承諾、 提交于 2019-12-21 21:03:14
将mysqL 数据同步到elsearch中(同步而非导入,当数据变化时el数据跟着变化),有两种情况,单表数据和联表数据。 0.在bin目录放jdbc驱动jar包 1.logstash 的配置尤为重要 参考: https://blog.csdn.net/qq_16436555/article/details/9136071 input { jdbc {     #数据库地址,用户,密码 jdbc_connection_string => "jdbc:mysql://ip:3306/test" jdbc_user => "root" jdbc_password => "root"     #驱动位置配置 #此处的路径最好是绝对路径,行对路径取决与允许命令的目录 jdbc_driver_library => "sync-conf/mysql-connector-java-6.0.6.jar" jdbc_driver_class => "com.mysql.jdbc.Driver"     #开启分页查询 jdbc_paging_enabled => "true" jdbc_page_size => "50000"        #决定增量同步的关键       #是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录   

Linux用户登录日志查询

廉价感情. 提交于 2019-12-21 20:10:38
# 1 utmp、wtmp、btmp文件 Linux用户登录信息放在三个文件中: 1  /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间; 2  /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看; 3  /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。 这三个文件都是二进制数据文件,并且三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。 默认情况下文件的日志信息会通过logrotate日志管理工具定期清理。logrotate的配置文件是/etc/logrotate.conf,此处是logrotate的缺省设置,通常不需要对它进行修改。日志文件的轮循压缩等设置存放在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下,它会覆盖缺省设置。 如果不想记录相关信息,则可以直接将相关文件删除即可。如果系统不存在该文件,则需要在此路径touch一个文件就可以继续记录相关信息了。 此外: 如果想禁用who命令,则只需要将utmp的可读权限去掉就行,这样非root用户就不能用此命令了;如果是btmp文件,手工创建的话注意权限必须为600,否则不能正确写入信息。 # 2