技术池(jishuchi.com) 本次搜索耗时 2.631 秒,为您找到 18 个相关结果.
  • labuladong 的算法小抄

    labuladong 的算法小抄 使用方法 English version repo and Gitbook is on english branch . Just enjoy:) labuladong 的算法小抄 本仓库总共 60 多篇原创文章,都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂 ,绝...
  • LRU算法

    LRU算法详解 一、什么是 LRU 算法 二、LRU 算法描述 三、LRU 算法设计 四、代码实现 LRU算法详解 一、什么是 LRU 算法 就是一种缓存淘汰策略。 计算机的缓存容量有限,如果缓存满了就要删除一些内容,给新内容腾位置。但问题是,删除哪些内容呢?我们肯定希望删掉哪些没什么用的缓存,而把有用的数据继续留在缓存里,方便之后继续...
  • 动态规划之博弈问题

    动态规划之博弈问题 一、定义 dp 数组的含义 二、状态转移方程 三、代码实现 四、最后总结 动态规划之博弈问题 上一篇文章 几道智力题 中讨论到一个有趣的「石头游戏」,通过题目的限制条件,这个游戏是先手必胜的。但是智力题终究是智力题,真正的算法问题肯定不会是投机取巧能搞定的。所以,本文就借石头游戏来讲讲「假设两个人都足够聪明,最后谁会获胜...
  • 团灭 LeetCode 股票买卖问题

    团灭 LeetCode 股票买卖问题 团灭 LeetCode 股票买卖问题 很多读者抱怨 LeetCode 的股票系列问题奇技淫巧太多,如果面试真的遇到这类问题,基本不会想到那些巧妙的办法,怎么办?所以本文拒绝奇技淫巧,而是稳扎稳打,只用一种通用方法解决所用问题,以不变应万变 。 这篇文章用状态机的技巧来解决,可以全部提交通过。不要觉得这个名词高大...
  • k个一组反转链表

    如何k个一组反转链表 一、分析问题 二、代码实现 三、最后说两句 如何k个一组反转链表 之前的文章「递归反转链表的一部分」讲了如何递归地反转一部分链表,有读者就问如何迭代地反转链表,这篇文章解决的问题也需要反转链表的函数,我们不妨就用迭代方式来解决。 本文要解决「K 个一组反转链表」,不难理解: 这个问题经常在面经中看到,而且 Leet...
  • 编辑距离

    编辑距离 一、思路 二、代码详解 三、动态规划优化 四、扩展延伸 编辑距离 前几天看了一份鹅场的面试题,算法部分大半是动态规划,最后一题就是写一个计算编辑距离的函数,今天就专门写一篇文章来探讨一下这个问题。 我个人很喜欢编辑距离这个问题,因为它看起来十分困难,解法却出奇得简单漂亮,而且它是少有的比较实用的算法(是的,我承认很多算法问题都不太...
  • 经典动态规划问题:高楼扔鸡蛋

    经典动态规划问题:高楼扔鸡蛋 一、解析题目 二、思路分析 三、疑难解答 经典动态规划问题:高楼扔鸡蛋 今天要聊一个很经典的算法问题,若干层楼,若干个鸡蛋,让你算出最少的尝试次数,找到鸡蛋恰好摔不碎的那层楼。国内大厂以及谷歌脸书面试都经常考察这道题,只不过他们觉得扔鸡蛋太浪费,改成扔杯子,扔破碗什么的。 具体的问题等会再说,但是这道题的解法技巧...
  • 合法括号判定

    如何判定括号合法性 一、处理一种括号 二、处理多种括号 如何判定括号合法性 对括号的合法性判断是一个很常见且实用的问题,比如说我们写的代码,编辑器和编译器都会检查括号是否正确闭合。而且我们的代码可能会包含三种括号 [](){} ,判断起来有一点难度。 本文就来聊一道关于括号合法性判断的算法题,相信能加深你对栈 这种数据结构的理解。 题目很简单...
  • twoSum问题的核心思想

    twoSum问题的核心思想 TwoSum I TwoSum II 三、总结 twoSum问题的核心思想 Two Sum 系列问题在 LeetCode 上有好几道,这篇文章就挑出有代表性的几道,介绍一下这种问题怎么解决。 TwoSum I 这个问题的最基本形式 是这样:给你一个数组和一个整数 target ,可以保证数组中存在 两个数的和为...
  • 贪心算法之区间调度问题

    贪心算法之区间调度问题 一、问题概述 二、贪心解法 三、应用举例 贪心算法之区间调度问题 什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间...