自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于求后缀数组的公共前缀的长度height数组求法思路与代码

字符串匹配之后缀数组概念:后缀数组:是所有后缀按字典排序后,数组中记录的起始下标。sa[0]=5,起始下标为5的后缀在所有后缀中字典最小。rank数组:是给定后缀下标,返回字典顺序。rank[5]=0 rank[sa[i]]=i后缀数组主要是为了匹配。子串:一定是某个后缀的前缀串求height数组,height数组就是两个后缀的公共前缀的长度可以用暴利求解法,但是复杂度高,可以用其它方法根据rank排名和hg[rank[i]]>hg[rank[i-1]]+1,数学公式推理。在一直后.

2021-04-12 22:23:48 204

原创 字符串匹配的后缀数组的直接比较和利用rank[i]=k的倍增法

public static Suff[] getSa(String s) { Suff [] SuffArrays = new Suff[s.length()]; //sa[i]=k表明的排名为i的后缀是从k开始的 for(int i=0;i<s.length();i++) { SuffArrays[i]=new Suff(s.substring(i),i);//substring(i)代表从起始位...

2021-04-10 22:00:39 256

原创 字符串匹配中KMP算法的next数组构造与思考

对于KMP算法的next算法,匹配规则i不动,j而是根据next[j]=k。如果在j位置失配,则退到k位置。构造next数组的是根据前缀与后缀的最长匹配。。。如ababaa 的next数组是-100123.所以上述代码改成match(string s, string p) if s.length==0 || p.length==0 return -1;//-1表示找不到 if (p.length>s.length) return -1 ...

2021-04-06 23:02:52 192

原创 字符串基础2

去掉字符串连续的k个0,k为动态输入。思路1:用replaceAll的正则是替换k个0为空,正则表达式0{k}思路2:进行count计数,出现的0,伪代码如下: repalcek(string s,int k): int count=0; Stringbuiler sb = new for(int i=0;i<s.length;i++) char c = s.charAt(i) if(c==...

2021-04-05 11:58:32 79

原创 字符串基础算法1

判断字符串的有无存在,首先字符串是unicode还是ascill的如果是ascill的则是128个字符,扩展的ascill是256个字符这样可以定义一个128大小的数组,然后用计数排序的方式统计每个元素出现的个数伪代码如下:checkDifference(String ins) if(StringUtils.isEmpty(ins)) return true; int [] flag = new int[128] for(i from 0 to length...

2021-04-04 11:52:42 116

原创 子数组的最大累加和已经子矩阵的最大累加和思路以及伪代码

昨天晚上是一种暴利解法求解子数组的累加和,下面是另一种解法以及其它变体思路2:单向扫描求和,如果是累加和为负数则丢弃,正数的时候则继续,最后返回max,,, //这个思路可以记住findSum2(int arr[])//算法的复杂度为On sum=arr[0] max=sum int left=0,right=0 for(i=1;i<length;i++) if (sum>=0) sum+=arr[i] e...

2021-04-03 11:39:40 292

原创 子数组的累加和计算

给定一个数组arr=[1,-2,3,5,-2,6,-1]所有子数组中[3,5,-2,6]可以累加最大和为12.所以返回12。思路:首先考虑长度为为1的数组有7个长度为2的数组6个长度为3的数组5个长度为4的数组为4个。。。。所以总共有n(n+1)/2个。用暴利解法,求出所有的和进行最大的searchSum(int arr[]): maxSum = 0; for(int i=0;i<arr.length;i++) for(j=1;j<length;...

2021-04-02 23:10:49 247

原创 找出边界为1的最大子方阵的思路与伪代码实现

找出边界为1的最大子方阵max(A,N) int n=N;//这是n的四次方的复杂度,下面可以进行优化 while(n>0) for(i=0 i<n;i++) for(j=0 j<n;j++) //三层循环 //i,j是顶点 r = i;//定义个行移动量 c = j; //定义个列移动量 这里注意数组的越界,要判断 //上面一条边逻辑 ...

2021-03-27 22:11:17 168

原创 求找出边界为1的最大子方阵的伪代码(运用上下左右的思想,同时定义个行列指针进行移动)

max(A,N) int n=N; while(n>0) for(i=0 i<n;i++) for(j=0 j<n;j++) //三层循环 //i,j是顶点 r = i;//定义个行移动量 c = j; //定义个列移动量 //上面一条边逻辑 while(c<j+n) if A[r][c]==0 conti...

2021-03-24 23:07:21 101

原创 昨天的topK的两种思路的伪代码实现

topK的伪代码如下(堆思想的实现)print topK() int k //输入k个数 int index = 0 用来计数输入了多少个元素 int [] heap 数组大小 k = scanner.nextInt() x = scanner.nextInt() while (x!=-1) deal(x) x = scanner.nextInt() //当大小不足k的时候则添加元素, 如果等于k则进行...

2021-03-21 10:35:50 304

原创 在海量数据中寻找topK的一些思路分析

求前k个数从大数据量里面排序的前k个数,topk.思路1:维持k大小的数组数,然后求出数组的这个数组的最小值,当再输入k+1个数的时候,和最小的值比较,如果大于最小的值,则替换原先的最小值放入数组中。对于时间复杂度首先是先k个数比较k次然后对于每个数N-k都需要进行k次比较(N-K)k则总共是k+(N-K)k算法复杂度思路2:如果需要NlgK的复杂度则如何设计算法设计小顶堆的概念每次都和堆顶元素比较向下调整...

2021-03-20 22:59:50 219

原创 基数排序的思想以及伪代码实现

桶排序算法总结通过分配和收集的方式进行排序value/(max+1)*n(这是计算每个元素value应该放入哪个桶里)算出value应该到哪个桶里面,得出的是桶的下标O(N)---O(NlgN) //最好的情况是每个元素分到一个桶里为O(N)最坏情况是所有元素分到一个桶里,对桶里的元素用快速排序或者是插入排序则是O(NlgN)的复杂度k=N/M N个元素,M个桶O(N+C)O(N+NlgN-NlgM)(M等于1的时候就是O(N+lgN))基数排序的过程也是通过分配和收集过程实

2021-03-14 10:40:59 773

原创 计数排序的一些思想,欢迎大家指正

计数排序用辅助数组对数中出现的数字计数,元素转下标,下标转元素假设元素均大于等于0,依次扫描原数组,将元素值k记录在辅助数组的k位上思想:空间复杂度:辅助空间k,k=max(source) 时间复杂度:扫描一次source,扫描一次helper,复杂度为N+k 非原址排序 稳定性:相同元素不会出现交叉,非原址都是拷贝来拷贝去 计数有缺陷,数据较为密集或者范围较小的时候适用。伪代码思路实现public static CountSort(source...

2021-03-12 22:35:23 101

原创 关于堆排序的一些基础学习和伪代码实现

/**二叉树的存储存储到数组当中,会有先序中序和后序遍历例如一棵存储的二叉树数组元素 78,56,34,43,4,1,15,2,23先序遍历结果是 先根左右 78 56 43 2 23 34 1 15中序遍历结果是2 43 23 56 4 78 1 34后序遍历结果是 2 23 43 4 56 1 15 34 78/**伪代码如下: 利用的是递归调用的形式preOrder(arr , index): if (i >= arr.length)//终止条件当超过数组长度了就返回...

2021-02-28 12:21:26 859

原创 关于寻找最小可用ID的算法伪代码实现

/***寻找最小可用id,,乱序排列从1开始。例如:1,5,2,10,11,6,4,。。。。则最小可用id为3如果数组大小为N的扫描不到了,则最小可用ID为N+1思路1:暴力破解法伪代码如下:findMinId(A):i=1while (true) //这里不用求数组长度循环数组长度 if (util.find(i)==-1) return i i++; return len+1思路2,先...

2021-02-21 12:05:41 363

原创 关于寻找海王id的算法伪代码分析思路

//数组中某个元素出现次数超过了数组长度的一半,找出这个元素思路1,先排序再返回数组N/2的元素,算法复杂度是nlgn思路2, 顺序统计主元的思想,可以达到o(n)级别的复杂度思路3,消除法 定一个候选值,和次数变量,如果和候选值一样就次数加1,如果不一样,新的后选址加1,最后返回次数不为0的那个searchValue(A): int candicate = A[0]//候选值 int times=1//出现的次数,原始次数为1,不是0 len = A.length ...

2021-02-19 14:47:04 896

原创 在一个乱序数组中找第K个小元素伪代码实现(基于递归和快速排序的实现版)

今天玩得时间比较多以至于只学习研究了一个算法,还是伪代码版。欢迎各位大牛指正学习//快速寻找乱序中的第K个元素思路:快速排序中主元的思想,主元左边是小于的主元右边是大于的伪代码如下:seletK(A,p,r,k){ q=partition(A,p,r)//获取主元 qK = q-p+1//主元是第几个元素 if (k==qK) return A[q] //注意这里是取q,不是取qK else if (k<qK)return seletK(A,p,q-1,k)...

2021-02-18 22:52:25 1004

原创 快速排序算法的优化以及归并排序伪代码记录学习一个小时算法

*partition2(A,p,r)* {** //优化三点中值法优化代码防止迭代层数过高* * midIndex = p + ((r-p)>>1)//中间下表* * midValueIndex=-1* * if(A[p]<=A[midIndex]&&A[p]>=A[r])* * {* * midValueIndex=p* .

2021-02-17 19:27:59 286

原创 关于快速排序的三种划分元素的方法

思路和伪代码如下:需要的小伙伴们自己实现/**** * 分治思想:划分子问题再合并 * 快排的重点是划分,归并的重点是合并 * 快速排序:1,分解,解决,合并 * 一遍单向扫描法: * 定主元,两个指针,一个是sp后面扫,另一个b指针 * 小于等于 sp右移,大于的bigger左移关键找出分 * 伪代码如下 * quickSort(A,p,r) * if (p<r) * q= partition(A,p,r) * quickSo.

2021-02-16 15:37:12 349

原创 递归算法一些例子---记录2/14情人节

package com.raisecom.tiap.ems.basic.mgt.domain.acl;import java.util.Arrays;import java.util.Random;import java.util.Scanner;public class recursionInfo { public static void main(String[] args) { //System.out.println(1<<35); .

2021-02-14 21:27:45 106

原创 2021-02-13

昨天学习了关于位运算的一些常识,自己也跟着视频敲了一些位运算代码如下:package com.raisecom.tiap.ems.basic.mgt.domain.acl;import java.util.Arrays;import java.util.Random;import java.util.Scanner;public class testInfo { public static void main(String[] args) { //System.o

2021-02-13 21:08:46 234 8

原创 银行招聘-笔试篇

最近参加了一场银行的笔试题,记录下心得。毕竟第一次,希望对大家有所帮助。笔试题目是随机抽选的,有好几套。答题之前是线上的,需要用笔记本电脑,进行摄像头拍照和麦克风调试,然后答题期间一直需要保持在镜头内,参加过的同学应该知道这种线上答题,以前以为可以作弊答题,谁知道是自己想太多了。时间是150分钟,分为数量关系模块,英语模块,基本知识模块。每个模块都是50分钟,超过时间自动会进入下一单元答题。所以第一次做的时候要把握时间啊,要不很被动。先说数量关系模块,有判断推理,比如:只要就的命题,还有说几个话有真

2020-07-12 20:54:46 595

原创 我所了解的大数据

大数据如今越来越热,数据量再大不会用,放到那里也是存储垃圾。所以随着数据量的越来越大,对数据的各种处理和挖掘需求也很多。这就促进分布式存储和计算软件的快速发展,集群的规模也越来越大。从以前的某家公司的服务器规模一万台都让人吃惊,到现在的BAT的大型分布式集群的总服务器规模在几万到几十万之间也不觉得匪夷所思。我现在接触的也是一些云平台集群的搭建和一些算法的并行化处理(一般是基于Mapreduce

2014-11-07 21:52:05 1200

原创 互联网--引领新技术的浪潮

正如本书序言所写那样,”20年前,没有人知道互联网。20年后的今天,

2014-11-03 21:59:58 1099

转载 Zookeeper解析

什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问。这里给大家总结一下。一、什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员, Apache Hbase和 Apac

2014-10-09 16:22:09 895

原创 IT成长录

“少壮不努力,老大学IT”,初次听到这句话是我大学老师在一次上课时看到满班乱哄哄的气氛说的,当时以为他是嘲讽我们或者是略微自嘲呢,现在回想起来有些不一样的感觉。从自己第一份接触IT工作(也算不上是真正的码农)到现在的继续在IT领域里深造学习,感觉有点累,有点迷茫。有时候敲着那相同字母组合的各种算法的代码,真是有种苦苦的味道。真想着放弃基础的代码学习,但我深知一切学习都是积累的过程,伟大的程

2014-03-30 22:21:23 1364 1

原创 myeclipse中编写小java项目遇到的一些问题(持续更新)

刚开始学习java程序,读了>..刚开始编写正常,可后来再次打开时看到所创建的java项目都会出现红色叉号。。。。  后来搜了一会儿却还是什么感觉很乱,最好也没有看懂如何解决这个简单问题。后来问同学原来是这么简单。   右击编写的项目 如:web----------Build Path------- Add Librabies--  接着选择    ---jre  system libra

2014-03-19 16:47:20 1200

原创 回首13我们奋斗在14的路上

    晓松老师说:2013世界依旧很大,大到可以晓说。的确,猛然间的细数2013的点点滴滴,发现它还可以大到我们去回味。    2013的我也失败过,学习过,成长过,偶尔也成功并快乐过。    2013虽然王菲和李亚鹏结束了他们因为爱情而曾经拥有的婚姻。但我们却依旧幻想着拥有自己那份甜蜜的爱情,或者把自己当成公主期待着自己白马王子的出现,亦或把自己当成孤行侠苦苦等待着自己的窈

2013-12-31 20:46:43 4493 2

翻译 Excel 2013 Power Programming with VBA 翻译

第14章:基于VBA开发的Excel实用工具  545页 是什么让它成为一个优秀的工具?Excel工具,理所应当的让你的工作变得更容易或者更有效。但是如果你正在为其他用户开发一个实用工具,你就会考虑是什么让Excel工具有实用价值?我总结了好的工具所共有的一系列元素:Ø       它在Excel里注入一些东西:可能是一个新特性、或许是合并那些已有特性的方法、亦或仅仅是一种让已有的

2013-11-27 11:33:46 2006

okio-3.0.0.jar

高版本的

2021-11-06

空空如也

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

TA关注的人

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