- 博客(4)
- 收藏
- 关注
原创 前端工程师的 LeetCode 之旅 -- KMP 字符串匹配算法
一、前言给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 这是双指针 Easy 篇中的【28. 实现strStr()】,虽然是一道 Easy 标签的题目,但是字符串匹配作为计算机科学中研究最广泛的问题之一,相关的算法实现也非常多。 本篇文章主要带大家了解...
2019-07-06 20:30:45 228
原创 前端工程师的 LeetCode 之旅 -- 双指针技巧 Easy 篇
一、前言 一般情况下,遍历数组(或者字符串)操作,都是采用单指针从前往后或者从后往前依次访问数组(或者字符串)中的元素。 而对于以下情况,只采用单指针处理,则会徒增时间复杂度和空间复杂度:例如:找到两个数使得它们相加之和等于目标数,采用单指针处理,则需要嵌套循环,使得时间复杂度增长为 O(n^2);再例如:翻转数组,采用单指针处理,则需要额外内存空间,使得空间复杂度增长为 O(n);...
2019-07-05 14:36:53 420
原创 前端工程师的 LeetCode 之旅 -- 二分搜索算法 Medium 篇(下)
一、287. 寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。1、HashMap 在没有其它附加条件的情况下,读者第一时间会想到通过 HashMap 来记录出现过的数字,从而找到重复数: 上述实现代码的时间复杂度和空间复杂度都为 O(n),如果只允许...
2019-07-03 08:51:50 150
原创 前端工程师的 LeetCode 之旅 -- 二分搜索算法 Medium 篇(上)
一、前言 错过上一篇的小伙伴们,可以先阅读前端工程师的 LeetCode 之旅 – 二分搜索算法 Easy 篇,了解一下二分搜索算法的实现原理以及如何利用 JavaScript 语言实现该算法。 二分搜索算法本身并不是特别复杂,核心点主要集中在:有序数组:指的是一个递增或者递减的区间(特殊情况如:【852. 山脉数组的峰顶索引】);中间数:用来确定搜索目标落在左半区间还是右半区间;...
2019-07-01 09:32:10 252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人