51CTO博客开发
问题描述: 给定序列 X 与 Y,若 Z 既是 X 的子序列,又是 Y 的子序列,则成 Z 为 X 和 Y 的公共子序列。Z中包含元素最多的子序列就是最大公共子序列。比如:X={A,B,C,B,D,A,B},Y ={C,B,C,E,D,B},则{B,C,D,B}是最大公共子序列。任意两个字符串 X 与 Y 的最大公共子序列的求法:利用动态规划法: 递推公式:
问题描述: 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.方法一:这个方法是我用java实现的,利用java里 容器,从头开始遍历数组,每遍历一个元素,需要进行两步操作:第一、创建一个新的LinkedList,并将这个元素放进去;第二、将
有如下一个数字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5从定点出发,在每个节点可以选择向左走或者向右走,一直走到底层。试设计一种算法,计算从三角形顶端到底部的一条路径,是该路径经
问题描述: 给定一个正整数n, 则在n所有的划分中, 求因子乘积最大的一个划分及此乘积。 例如:8 = {8}, {7, 1}, {6, 2}, {5, 3}, {4, 4}, {3, 3, 2}, {2, 2, 2, 2} 等,那么在这些当中,3 * 3 * 2 的乘积最大,所以输出整个划分{3,3,2}和这个乘积18.算法分析:
将正整数n划分成连续的正整数之和如15可以划分成4种连续整数相加的形式:157 84 5 61 2 3 4 5分析: 设n为被划分的正整数,x为划分后最小的整数。 如果n有一种划分,那么结果就是x,如果有两种划分,就是[x] 和[x ,x + 1]; 如果有m种划分,就是[ x] 、[x ,x + 1] 、 [x, x + 1, x + 2]
问题描述: 从一些数中取出四个,使和等于N,可任意重复取,求所有的情况。 与以下题目相似 http://oj.leetcode.com/problems/4sum/解题思路: 暴力解法(四重循环),效率很低 利用hash的方法:先将数据两两相加,将和作为key,将两个数据组成的集合作为值value;由于相同的和值的组合可能有多个,所以 val
在利用map时,偶尔需要根据value的大小来进行排序,今天就遇到了。现在就把map根据value进行排序的方法在此记录。1、声明一个hashmap对象Map<String> map = new HashMap<String>();2、通过ArrayList构造函数把map.entrySet()转换成list List<Map.Entry&
this逃逸是指在构造函数返回之前其他线程就持有该对象的引用. 调用尚未构造完全的对象的方法可能引发令人疑惑的错误, 因此应该避免this逃逸的发生。this逃逸经常发生在构造函数中启动线程或注册监听器时, 如:public class ThisEscape { public ThisEscape() { new Thread(new EscapeRunnable())
今天看到以下博文,感觉获益匪浅:原文链接:http://www.cnblogs.com/rushoooooo/archive/2011/08/29/2157361.html<context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/lo
第一点:缺少jar包:第二点:Struts-xml中配置要改为如下所示:第三点:在action里去掉不需要的getter方法。这个具体原因还在学习当中,貌似跟序列化有关另外struts2可能遇到的问题及解决:解决struts2.1.6断网出bug的问题Unable to load configuration. - Class: java.net.PlainSocketImpl...Caused b
Properties properties = new Properties(); public void loadProperties(){ logDebug.debugMethod("函数:loadProperties"); try { InputStream inputstream = this.getClass(
查看数据库表基本信息select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA = '数据库名' and information_schema.TABLES.TABLE_NAME = '表名';查看mysql数据库大小SELECT sum(DATA_LENGTH)+sum(INDEX_LE
光标放置与屏幕调整:H 将光标移动到屏幕的顶行nH 将光标移动到屏幕顶行下的第 n 行M 将光标移动到屏幕的中间L 将光标移动到屏幕的底行nL 将光标移动到屏幕底行上的第 n 行^e(ctrl+e) 将屏幕上滚一行ctrl+y 将屏幕下滚一行ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b
块操作:v 字符选择,光标经过的字符被选中V 光标经过的行被选中Ctrl+v 块选择,以矩阵方式选择y 复制被选中的数据d 删除被选中的数据多文件操作:vim file1 file2 同时编辑文件1和2:files 列出vim当前打开的文件列表:n 编辑下一个文件:N 编辑上一个文件多窗口操作::sp file2 打开一个文件后,在新窗口中打开文件file2ctrl+w –>j 窗口向下切换
搜索:/str 从光标位置向下搜索str?str 从光标位置向上搜索strn 查找下一个N 查找上一个替换::%s/abc/123/g 把abc全部替换为123:%s/abc/123/gc 同上,但需要用户一个个确认撤销:u 退回前一个动作ctrl+r 重复前一个动作:e! 文档还原到最原始状态
复制/粘贴/删除:yy 复制当先行5yy 复制从当前行开始的5行p 粘贴到下一行P 粘贴到上一行D 当前光标开始删除到行尾dd/. 删除当前行ndd 从当前行开始向后删除n行d1G 删除第一行到当前行dnG 删除第n行到当前行dG 删除从当前行到最后一行的数据x 向后删除一个字符nx 向后删除n个字符X 向前删除1个字符
光标移动操作:h 左移动j 下移动k 上移动l 右移动$ 光标移动到行尾0 光标移动到行首G 光标移动到文档最后一行gg 文档移动到文档第一行nG/:n<Enter> 光标移动到文档第n行n<Enter> 向下移动n行n<space> 向右移动n字符pageup/ctrl+b 向上翻页pagedown/ctrl+f 向下翻页
插入:i 在光标前插入I在行首插入a 在光标后插入A 在行末插入o 在下一行插入O在上一行插入r 输入替换光标位置字符R 进入输入替换模式-大小写转换ESC 退出编辑模式保存::w 保存:w! 强制保存:w filename 文件另存为filenamen1:n2 w filename 将n1到n2行的数据另存为filename退出::q 退出:q! 强制不保存退出:qw! 强制保存退出:x 保存并
1、限制规则 字段的限制在字段定义的时候有以下规则:a)存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。b)编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21844。
添加前缀 update `goods` set goods_name=concat('新中式',goods_name) where cat_id =4; 添加后缀 update `goods` set goods_name=concat(goods_name,'新中式') where cat_id =4; 删除 update `goods`set goods_name=right(goods_na
在使用数据库中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 INSERT INTO SELECT语句语句形式: Insert into Table2(field1,field2,...) select va
默认是要区分表名大小写的让MYSQL不区分表名大小写的方法其实很简单: 1.用ROOT登录,修改/etc/my.cnf 2.在[mysqld]下加入一行:lower_case_table_names=1 3.重新启动数据库即可。
参考文章:http://blog.csdn.net/zhxp_870516/article/details/8434352 在分析查询性能时,EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:INSERT INTO TABLE (a,b,c)VALUES (1,2,3) ON D
最近正在学习mysql,又恰好看了博主shayang88的"高性能的mysql"系列教程,就自己跟着试验了一下,亲自感受了慢查询。参考博文:http://janephp.blog.51cto.com/4439680/130692慢查询的配置文件修改:几个配置文件参数的意义:slow_query_log = on;开启慢查询日志slow_query_log_file = ....指定日志文件存放
首先介绍一下mysqlslap,mysqlslap是mysql自带的压力测试工具,从5.1.14版本以后产生。 mysqlslap的一些参数配置如下: --auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。 --auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境
xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。例如,下面的命令:rm `find /path -type f`如果path目录下文件过多就会因为“参数列表过长”而报错无法执行。但改用xargs以后,问题即获解决。find /path -type f -print0 | xargs -0 rm本例中xargs将fi
Sed命令Sed的常用命令语法Sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。1.行的匹配[root@mypc /]# sed -n '2p' /etc/passwd 打印出第2行[root@mypc /]# sed -n '1,3p' /etc/passwd 打印出第1到第3行[root@mypc /]# sed -n '$p' /etc/passwd 打印出最后一行[r
Awk的常用命令语法awk命令擅长格式化报文或从一个大的文本文件中抽取数据包,下面是该命令的基本语法awk [-F filed-separator] “commands” input-file(s)[ - F域分隔符]是可选的,a w k使用空格作为缺省的域分隔符,如果在要处理的文件中是以冒号作为分割域的(如passwd文件),则在处理的时候要这样指明 awk –F: commandinput-f
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号