![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
文章平均质量分 95
名字只是一个称呼
我不想改变世界,我想改变的只有你
展开
-
字符串匹配KMP算法的理解及求next值(简单介绍)
一、问题引入:相信大部分初学者在开始做算法题的时候,碰到字符串的匹配,一般都会优先使用朴素算法(暴力算法),我也是一个暴力算法的迫害者之一。例如:现在有一个文本串S=“BBC ABCDAB ABCDABCDABDE”和一个搜索串(模式串)p="ABCDABD",要查找p在s中的位置。(暴力算法的代码就不贴了,此算法的时间复杂度最好为O(n+m)、最坏为O(nm))这样只能一个一个的去匹配,虽然可以得出想要的结果,但是这样相对来说效率过于低,所以这次我们可以使用KMP算法进行来求解。二、KMP原创 2021-04-21 18:41:05 · 3268 阅读 · 2 评论 -
word maze 单词迷宫 (java语言编写)
WordMaze是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f。但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。注意区分英文字母大小写,你只能上下左右行走。运行时间限制: 1000ms 内...原创 2019-11-07 00:56:15 · 1743 阅读 · 0 评论 -
开灯问题——基础
描述有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000输入输入一组数据:n 和 k输出输出开着的灯编号样例输入7 ...原创 2019-06-12 17:08:21 · 427 阅读 · 0 评论 -
用面向对象的方法求出数组中重复 value的个数
下面是题目要求:想法:利用map的键值对进行来解答这道题 public void arrtest(){ int[] arr = {1,4,1,4,2,5,4,5,8,7,8,77,88,5,4,9,6,2,4,1,5}; Map<Integer,Integer> map=mapvalue(arr); for (Map....原创 2019-07-18 23:25:39 · 287 阅读 · 0 评论 -
用两个队列模拟堆栈结构
两个队列模拟一个堆栈,队列是先进先出,而堆栈是先进后出。队列 a 和 b(1) 入栈: a 队列为空, b 为空。例: 则将” a,b,c,d,e” 需要入栈的元素先放 a 中, a 进栈为” a,b,c,d,e”(2) 出栈: a 队列目前的元素为” a,b,c,,d,e” 。将 a 队列依次加入 Arraylist 集合 a 中。以倒序的方法,将 a 中的集合取出,放入 b 队列中,...原创 2019-07-19 17:24:40 · 666 阅读 · 1 评论 -
基于Snowflake算法的id 生成器(简单介绍)
首先,为什么要用id 生成器呢,自增长id不好吗?数据库自增长id当然可以,但是如果只是那种小型项目的,用户量并不多的话,完全没问题,但是一旦用户量多了,id的值到了上亿级的数据,自增长id问题就明显了,当我们的业务逐渐扩大,我们需要对数据库进行分库分表等操作的时候,这种方式是就变得没有办法了!试想一下,如果我们有一个业务,每一个省份维护自己的一台数据库,User表用于记录当前省份的用户信...原创 2019-09-30 16:33:50 · 1897 阅读 · 1 评论