算法
文章平均质量分 75
wiilman
这个作者很懒,什么都没留下…
展开
-
Mancher算法总结(马拉车)
本文在这篇文章的基础上完成。下面说下Mancher算法。一、Mancher可以解决的问题看这里,题目的核心意思是求指定字符串的最长回文(自行百度什么是“回文”)子字符串的长度。传统做法我们这里就不讲了,直接讲Macher。1、字符串转换回文字符串长度可是奇数,也可是偶数。为了方便处理,我们通过在每个字符之间以及字符首位加特殊符号的方式来统一奇偶问题。举个例子:S=“abba”,变为T="#a#b#...原创 2018-06-13 17:06:21 · 1514 阅读 · 0 评论 -
leetcode之Integer To Roman 的js实现
原题在这里。简单翻译一下。罗马数字用7个不同的符号表示,I, V, X, L, C, D 和 M。符号 值I 1V 5X 10L 50C 100D 500M 1000例如,2写作II,12写作XII,...原创 2018-06-28 19:58:36 · 187 阅读 · 0 评论 -
leetcode之Container With Most Water的js实现
原题在这里。简单翻译一下。Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, ...原创 2018-06-27 14:52:57 · 241 阅读 · 0 评论 -
leetcode之Longest Common Prefix的js实现
原题在这里。老规矩,还是先简单翻译一下。查找指定字符串数组每个元素的最长相同前缀。如果没有相同的前缀,那么返回""。举个例子:Input: ["flower","flow","flight"]Output: "fl"Input: ["dog","racecar","car"]Output: ""Explanation: Th原创 2018-07-08 17:17:40 · 249 阅读 · 0 评论 -
LeetCode之Regular Expression Match的js实现
题目在这里。简单翻译一下。就是实现这样一个正则表达式,支持'*'和'.'。'*'不能单独出现,它之前必须有一个字符可以是a-z或者'.'。'*'表示重复它之前的字母n次(n>=0)'.'表示可以充当a-z的任意一个字符。举几个例子:1、Input:s = "aa" p = "a"Output: false解释: "a" 不能完全匹配 "aa".2、Input:s = "aa"p ..原创 2018-06-26 11:30:59 · 271 阅读 · 0 评论 -
leetcode 之 Roman To Integer 的js实现
原题在这里。简单翻译一下。罗马数字用7个不同的符号表示,I, V, X, L, C, D 和 M.符号 值I 1V 5X 10L 50C 100D 500M 1000I在V或者X前面表示4和9。X在L...原创 2018-06-29 18:01:40 · 363 阅读 · 0 评论 -
求两个递增数组的中位数
题目在这里。先举两个例子:例1nums1 = [1, 3]nums2 = [2]The median is 2.0例2nums1 = [1, 2]nums2 = [3, 4]The median is (2 + 3)/2 = 2.5实际上这道题我们可以扩展为:求两个递增数组的第k(从1开始)个数。中位数只是其中的一个特例。这道题我们可以采用分治(divide conquer)的思想来处...原创 2018-06-17 22:49:32 · 1117 阅读 · 0 评论 -
快速排序算法javascript实现
本文基于这里1、为什么选择快速排序?相比较传统做法用嵌套循环排序,时间复杂度由O(n^2)变为O(logn),当问题规模n变大的时候,就能体现快速排序算法的效率了。2、快速排序的数学计算步骤假设我们对T = [6,1,2,7,9,3,4,5,10,8]数组进行快速排序。(1)、确定基准数我们把数组的第一个元素作为基准数。基准数的作用就是我们一次计算结束后,把小于基准数额元素都放到基准数的左边,大于...原创 2018-06-22 19:00:22 · 16900 阅读 · 7 评论 -
分治算法javascript实现
举个简单的分治算法场景:求指定整型数组的最大值和最小值。传统做法就是遍历一遍下来求出最大值和最小值,时间复杂度是O(n)。下面说下用分治怎么实现。1、为什么选择分治算法?因为本题具有以下属性(1)、当该问题缩小到一定规模的时候,比如,该数组只有两个元素,这个时候,这个问题就很好解决。(2)、该问题可以分解为若干规模较小的相同问题。(3)、分解的问题的答案可以合并为该问题的解。2、本题如何用分治算法...原创 2018-06-21 14:50:21 · 1474 阅读 · 0 评论 -
leetcode之3sum的js实现
题目在这里。翻译一下:Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution s...原创 2018-07-15 19:54:36 · 367 阅读 · 0 评论