
算法
fengpojian
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-最长公共前缀(java实现)
题目如图, 最开始我的想法是利用双重for循环,对于相邻字符串的每个字符进行比较。例如"flower"和"flow",最长公共前缀就是'flo',利用一个计数器保存公共前缀的长度3;然后比较"flow"和"flight"的最长公共前缀,长度为2,也用计数器保存。最后在这个计数器数组中找到最小值,就是整个String数组中所有元素的最长公共前缀的长度。代码如下publi...原创 2018-08-01 11:03:04 · 5550 阅读 · 5 评论 -
LeetCode-有效的括号(java实现)
题目如下: 刚看到这题的时候,还是非常简单的想暴力解决。暴露了眼界还是太狭隘。刚开始的想法是只要判断出"(){}[]"、"({[]})"、"()"...等这样为true的情况应该就能解决问题了。但是想法太简单 ,运行的结果不是忘了判断这种情况就是忘了判断那种情况,最后运算还超时了。 后来在网上找了一下代码,运行时间为14ms。这段代码运用了栈stack,这是以前的知识盲区...原创 2018-08-02 11:31:45 · 5546 阅读 · 2 评论 -
LeetCode-合并两个有序链表(java实现)
题目如下 看完题目之后,思考的结果是用递归做应该是最佳的选择。但无奈水平真的有限,没有想出来如何用设计递归。提交的时候就没有用递归实现,运行结果可想而知:23ms。看了第一名的用时是5ms,而且代码简洁优美,不得不佩服/***Definition for singly-linked list*/class ListNode{ int val; L...原创 2018-08-03 11:19:21 · 23694 阅读 · 11 评论 -
LeetCode-报数(java实现)
题目如下: 当时看到这个题目,第一个想法就是使用递归,思考良久还是没有思路。然后网上看了好几个实现,最后都要带上一句这题很简单,算法萌新瑟瑟发抖...... ok,言归正传。先上代码public String countAndSay(int n) { if(n == 1){ return "1"; } ...原创 2018-09-19 18:57:23 · 3305 阅读 · 1 评论 -
LeetCode-最大子序和(java实现)以及分治法理解
题目如下: 题目中已经给了提示,完美的解法需要使用分治法求解。本题的分治法代码实现非诚简单,但是理解起来会有点困难,先看一下这两篇博客的解释,再看代码 分治法理解:https://blog.youkuaiyun.com/linhuanmars/article/details/21314059 分治法理解:https://blog.youkuaiyun.com/Pwiling/articl...原创 2018-09-20 16:49:17 · 2956 阅读 · 3 评论 -
LeetCode-环形链表(java实现)
题目如下本篇文章讨论的都是单链表环形链表就是循环链表的意思。即链表的尾节点不是null,而是重新指向链表的其他节点。判断一个单链表是否是循环链表,可以采用快慢指针,追击相遇的方式来实现。算法的原理可以形象的比喻成“龟兔赛跑”。兔子的速度是乌龟的两倍,它们在一个环形的跑道上面赛跑。经过一段时间之后,兔子必定会超过乌龟一圈,然后相遇。我们循环一个单链表,如果这个单链表是循环链表,快指...原创 2019-05-10 11:07:20 · 2483 阅读 · 0 评论 -
Java实现字符串匹配RK(RabinKarp)算法
前言写这篇博客主要是因为在看了相关的RK算法原理之后,发现算法都是用C语言实现的。对于习惯使用Java的我来说有点不习惯。所以这里写了一个Java语言版本的实现。这篇文章不会讲解RK算法的原理,只是Java版本的实现。具体的算法参考了这篇博客 。博客里也详细讲解了RK的原理。/** * 字符串匹配RK算法,BF算法的升级版本 * Created by LinGer on 2019/7/...原创 2019-07-03 11:48:03 · 1530 阅读 · 1 评论