个人简介

Echo Blog


江湖无名 安心练剑
  • leecode 精选 08-merge k sorted lists 合并多个有序的链表
    开胃菜 在进入本节的正题之前,我们先来看一道开胃菜。 题目 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解法 1 思路 直接两个列表合并,排序,然后重新...
    2020-06-08 07:13:08 | Algorithm
  • leecode 详解 07-generate-parentheses 括号生成
    括号生成 题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。 示例: 输入:n = 3 输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ] 思路分析 你看这道题,他的样子平淡无奇。 但是既然我...
    2020-06-08 07:13:08 | Algorithm
  • leecode 详解 06-ksum 求符合条件的 k 个数
    两数之和 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, ...
    2020-06-08 07:13:08 | Algorithm
  • leecode 详解 05-median of two sorted arrays 寻找两个正序数组的中位数
    题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 =...
    2020-06-08 07:13:08 | Algorithm
  • leecode 详解 04-regex match 正则表达式匹配
    题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ’*‘ 的正则表达式匹配。 ’.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 个人分析 拿到题目的第...
    2020-06-08 07:13:08 | Algorithm
  • leecode 详解 03-Manacher Algorithm 马拉车算法
    Manacher’s Algorithm 马拉车算法。 马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法,由一个叫Manacher的人在1975年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性。 解决奇偶的问题 首先我们解决下奇数和偶数的问题,在每个字符间插入”#”,并且为了使得扩展的过程中,到边界后自动结束,在两端分别插入 ...
    2020-06-08 07:13:08 | Algorithm
  • 从零开始的数据结构与算法-02-基本概念
    数据结构 算法 二者的关系 拓展阅读 对于复杂度的衡量 参考资料 数据结构 算法 二者的关系 拓展阅读 参考资料
    2020-06-08 07:13:08 | Algorithm
  • 从零开始的数据结构与算法-00-概览
    实现 C 更加接近于底层,建议数据结构使用 C 的形式。 同时写一份 java 实现。 算法使用 java 实现。 数据结构与算法二者分开,整理为工具包。 学习方式 兼听则明,偏听则暗。 学习的时候以一本书为主,多本书为辅助。 协助查询一点资料。 实战 可以刷一遍 leetcode 算法题。 省的每次都被无聊的算法面试恶心到。 也提升自己的基本功,便于工具框架的编写。...
    2020-06-08 07:13:08 | Algorithm