自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JunglerOfChina的博客

一个技术爱好者

  • 博客(28)
  • 收藏
  • 关注

原创 java 队列

java中有很多内置的队列列举一下有哪些队列1 ArrayBlockingQueue(阻塞队列) 线程安全,内部采用数组实现,是有界的队列 队头和队列尾部采用同一个ReetrantLock来保证线程安全 由于队头和队尾采用同一个Lock,所以生成者和消费者不能同时进行 一些核心方法boolean offer(E e) 如果当前队列满了,直接返回false,否则插入到队列中返回truevoid pu...

2018-05-27 16:31:22 289

原创 记录一次mysql安装过程中的坑

在安装mysql时,在尽心数据库初始化的过程中,命令service mysqld start,一直报错The server quit without updating PID file查了很多资料也没有解决,最后旁边的一位linux大神帮我填上了坑,需要加上参数即可service mysqld start --pid-file mysql.pid...

2018-05-25 18:20:58 353

转载 ID生成器

/** * Twitter_Snowflake<br> * SnowFlake的结构如下(每部分用-分开):<br> * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 <br> * 1位标识,由于long基本类型在Java中是带符号的,最高...

2018-05-24 09:18:17 270

转载 log4j2日志配置

1 log4j21.1 简介log4j2,一个日志的实现框架,是log4j的升级版本,于2014年7月正式亮相。与第一代log4j不同,log4j2完全重写了log4j的日志实现,并不是在原有基础上进行的升级,解决了log4j中的一些问题,例如:多线程下性能低下、api不支持占位符{}的使用、配置文件不能自动重新加载等。为什么说log4j在多线程情况下性能低下呢?主要是synchronized锁在...

2018-05-20 16:30:42 1265

原创 循环有序数组二分查找

算法描述,一个有序的数组,从开始到中间截取一段数组放到数组的尾部,这个数组会变成循环有序的数组,在这个循环有序的数组中进行二分查找例如   1,2,3,4,5,6,7,8,9    截取前4位放到尾部会变成5,6,7,8,9,1,2,3,4 变成循环有序的数组算法实现:采用二分查找的方式,获取中间的一个数组,然后看一下转折点在中间数的左边还是右边,然后进行分情况讨论具体实现代码如下:public ...

2018-05-20 10:25:13 2522 1

原创 java面试-多线程

面试总结-多线程1 线程状态先简单的看一下线程之间的状态扭转图从上面的图中可以看出线程大概有就绪,运行,阻塞,死亡这几个状态,各个状态之间的扭转在图中描写挺清晰2 线程池面试过程中,经常会被问到线程池线程池的一些核心参数:coreSize, maxSize,overtime,queue的大小,rejectHandlercoreSize:核心线程...

2018-05-20 09:19:37 237

原创 Mybatis代码生成增加分页参数

自定生成代码分页插件public class PaginationSupportedPlugin extends PluginAdapter { private String customOffsetName = "offset"; private String customRowsName = "rows"; private String[] includes = new...

2018-05-19 08:41:03 518

原创 个人面试总结-集合

面试题总结1 java 提供的集合工具有哪些List常用的有ArrayList,LinkedList ArrayList的底层实现是数组,LinkedList底层采用链表实现;Map常用的有 HashMap,LinkedHashMap,Hashtable,ConcurrentHashMap HashMap:底层采用数组+链表的形式实现,非线程...

2018-05-05 20:30:10 153

原创 求数组的最大值

问题描述:给定一个数组,数组中最大值的前面数字递增,后面连续递减,求最大值,eg: 1,2,3,4,8,6,5,4,3  中的最大值为8算法描述:采用二分法,获取中间值,然后和他的前面一个比,如果比前面数字大,说明最大值在后面,缩小查找范围,如果比后面一个大,说明最大值在前面,缩小查找范围;代码如下:public static void main(String[] args) throws Exc...

2018-04-09 09:33:22 238

原创 堆排序

public static void adjustHeap(int[] array,int parent, int len){ int temp = array[parent]; int child = 2 * parent + 1; while(child < len){ if(array[child] < array[child + 1]){...

2018-03-20 08:55:16 102

原创 归并排序

public static void main(String[] args) { int[] array = new int[13]; array[0] = 8; array[1] = 10; array[2] = 23; array[3] = 48; array[4] = 7; array[5] = 6; array[6] = 11...

2018-03-19 09:21:42 117

原创 快速排序

public static void main(String[] args) { int[] array = new int[13]; array[0] = 8; array[1] = 10; array[2] = 23; array[3] = 48; array[4] = 7; array[5] = 6; array[6] = 11; array[7] = 13; array...

2018-03-18 22:01:37 106

原创 股票最大收益问题

问题描述:给定数组A[0...N-1],其中A[i]表示某股票第i天的价格。如果允许最多只进行一次交易(先买一次,再卖一次),请计算何时买卖达到最大收益,返回最大收益值如:[7,1,5,3,6,4],则最大收益为6-1=5。如:[7,6,4,3,1],则最大收益为0。算法描述:遍历数组,记录数组中的最小值,计算当前股票价格和数组中最小值的差值作为收益值,求收益值的最大值代码public stati...

2018-03-11 16:00:14 1234

原创 求数组的最长递增子序列

题目描述:给定长度为N的数组A,计算A的最长的单调递增的子序列(不一定连续)。如:给定数组A{5,6,7,1,2,8},则A的最长单调连续子序列为{5,6,7,8},长度为4算法设计:借助栈,遍历一遍数组,如果当前栈为空,直接压栈,如果当前数字大于栈定元素,直接压栈,如果当前元素小于栈定元素,则替换栈中第一个比当前元素大的元素public static void main(String[] arg...

2018-03-11 15:34:39 1006

原创 插入排序

算法描述插入排序是一个平均时间复杂度为O(N^2)的排序算法,它的算法思想是假设有一个数组长度为N,然后在[0..N-1]的范围内,从i=1开始,和i-1的数进行比较,如果小则交换,并继续向前一个数比较,直到大则停止,i++。重复遍历直到i=N-1。复杂度1.平均时间复杂度:O(N^2)2.最坏时间复杂度:O(N^2) 出现情况:整个数组为倒序的情况3.最好时间复杂度:O(NK) 出现情况:当每个...

2018-03-09 09:47:53 152

原创 冒泡排序

算法描述冒泡排序是一个平均时间复杂度为O(n^2)的排序算法,它的算法思想是假设有一个数组长度为N,然后在[0...N-1]的范围内,假设i=0。先把第i个数和它后面的数i+1比较,如果大则交换,否则不变。然后继续向后遍历,直到将最大的数交换至数组末尾,然后下一次在[0..N-2]范围内从i=0开始。直到范围缩小到[0..1]结束,总结,每次冒泡后,都会把数组中的一个最大值冒到最后复制度1.平均时...

2018-03-09 09:13:17 226

翻译 求字符串的最长回文字串

题目描述:现给定一个已知的字符串str[],现在想要在O(n)的时间复杂度之内求出一个最长的回文子字符串(正着和倒着顺序读一致)。Manacher算法算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和...

2018-03-08 12:57:42 553

原创 求下一个排列数

问题描述:给定一个数字,求全排列下一个数字,如21534,下一个比它大的数字是23145算法分析:逐位考察哪个能增大,一个数右面有比它大的数存在,它就能增大,那么最后一个能增大的数是x=1,1应该增大到多少?增大到它右面比它大的最小的数y=3,应该变为23xxx,显然,xxx应由小到大排:145,最终得到23145整理以上,步骤是后找,小大,交换,翻转后找:字符串中最后一个升序的位置i,即:S[k...

2018-03-07 22:26:48 824 1

原创 字符串循环左移

问题描述:给定一个字符串S[0...N-1],要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符“a”和“b”移动到字符串的尾部,得到新的字符串"cdefab";即字符串循环左移k。算法分析:把abcdef看成是由X=ab和Y=cdef组成,由矩阵转稚公式(X`y`)`=YX,如X = ab   X`=ba   Y=cdef    Y`=fedc  所以只需要把X和Y都转...

2018-03-07 22:04:54 688

原创 求连续递增子数组

题目描述:给定长度为N的数组A[0...N-1],求递增且连续数字最长的子数组。eg:1,2,3,34,56,57,58,59,60,61,99,122的连续数字最长的一段为56,57,58,59,60,61算法分析:遍历数组,从下表为1的开始,如果A[i]-A[i-1]==1,A[0....i-1]的连续子数组长度len加一,否则置最长连续子数组长度为1,并每次更新最长连续的长度maxLen(比...

2018-03-07 09:36:01 1465

原创 求最大连续子数组和的最大值

题目描述:给定一个数组A[0,....,n-1],求A的连续子数组,使得该子数组的和最大。eg:  1,-2,3,10,-4,7,2,-5的最大子数组为3,10,-4,7,2算法分析:记S[i]为以A[i]结尾的数组中和最大的子数组,则S[i+1]=max(S[i]+A[i+1],A[i+1])S[0] = A[0]遍历i:0<=i<=n-1public static void mai...

2018-03-07 08:59:04 1188

原创 求循环有序数组中的最小值

题目描述:假定一个排序数组以某个未知元素为支点做了旋转,如:原数组0,1,2,4,5,6,7旋转后得到4,5,6,7,0,1,2。请找出旋转后数组的最小值。假定数组中没有重复数字。分析:旋转之后的数组实际上可以划分成俩个有序的子数组,前面子数组的大小都大于后面的子数组中的元素;4,5,6,7,0,1,2 注意到实际上最小的元素就是俩个子数组的分界线算法描述:用索引low和high分别指向首尾元素,...

2018-03-07 08:20:52 1585

原创 求第一个丢失的正整数

定义:给定一个数组A[0....N-1],找到从1开始,第一个不在数组中的正整数。如 3,5,1,2,-3,7,14,8 输出4算法描述:遍历一遍数组,若A[i] = i,i加1,继续比较后面的元素若A[i]<i 或者A[i]>N 丢弃A[i],若A[i] > i,则将A[A[i]]和A[i]交换。代码如下:public static void main(String[] arg...

2018-03-06 20:24:16 316

原创 荷兰国旗算法

问题:现有红,白,蓝三个不同颜色的小球,乱序排列在一起,请重新排列这些小球,使得红白蓝三色的同颜色的球在一起。问题转化为:给定数组A[0...N-1],元素只能取0,1,2三个值,设计算法,使得数组排列成00..0011...1122...222的形式。借鉴快速排序中partition的过程。定义三个指针:begin=0,current=0,end=N-1;A[cur] == 2,则A[cur]与...

2018-03-06 19:54:17 674 1

原创 求1/3众数

问题描述:给定一个数组,求数组中出现次数超过1/3的数字算法描述:一个数组中,出现次数超过1/3的个数最多有俩个,任意删除数组中的三个不相同的数,其中一个为1/3众数,则1/3众数不变。使用cm记录候选值m的出现次数,若cm为0,则重新选择候选值。代码如下:public static void main(String[] args) { int[] array = new int[13];...

2018-03-06 19:41:23 340

原创 绝对众数

定义:给定N个数,称出现次数最多的数为众数;若某众数出现次数大于N/2,称该众数为绝对众数如:A={1,2,1,3,2}中,1和2都是众数,但都不是绝对众数。如:A={1,2,1,3,1}中,1是绝对众数。算法分析:一个数组中最多出现1个绝对众数,这个众数出现的次数超过整个数组的一半,可以利用打雷的思想,遍历一遍数据,如果当前值和擂主不相等,则擂主对应的打擂次数减1,如果相等就加1,如果统计擂主的...

2018-03-06 09:34:48 702

原创 乌克兰国旗

乌克兰国旗算法定义:给定一个数组,只有0和1,实现把所有的0放到数据的左边,把所有的1放到数组的右边public static void main(String[] args) { int [] array = new int[11]; array[0] = 1; array[1] = 0; array[2] = 0; array[3] = 1; a...

2018-03-06 09:06:25 1957

转载 jGrid使用

特别推荐:怎样获取某一方某一列的值:[html] view plaincopyvar rowdata=jQuery("#list").jqGrid('getRowData',num);        var emergencySencondMgrId = rowdata["emergencySencondMgrId"];//列名和jGrid定义时

2015-09-16 18:33:28 730

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除