![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法专区
文章平均质量分 96
从基础的哈希表、字符串的使用,到数组、链表、栈与队列、双指针法、二叉树各种变式,最后再到回溯、贪心、动态规划等中等复杂算法题,基本满足各大公司面试算法要求。
祖母绿宝石
程序员
展开
-
一文搞懂字符串应用,上机考试再也不会慌
文章目录leetcode344,反转字符数组问题描述解决方案:设置一个暂存变量就好了leetcode206,反转链表问题描述头插法反转链表leetcode344,反转字符数组问题描述解决方案:设置一个暂存变量就好了这个题目的意义:「如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数。」「如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,可以考虑使用库函数。」0^ 0=0; 0^ 1=1; 1^ 0=1; 1^ 1=0class So原创 2021-03-14 09:50:52 · 360 阅读 · 1 评论 -
一文搞懂数组,上机考试再也不会慌
编号35:搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0思路这道题目不难,但是为什么通过率相对来说并不高呢,我理解是大家对边界处理的判断有所失误导致的。这道原创 2021-03-05 21:45:36 · 377 阅读 · 0 评论 -
一文搞懂贪心算法,上机考试再也不会慌
贪心概要「贪心的本质是选择每一阶段的局部最优,从而达到全局最优」。1、无限制条件:可以无条件限制的执行局部最优;2、无数次:可以执行无数次的局部最优。只要同时满足这两个条件,就可以用贪心算法了。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。再举一个例子如果是 有一堆盒子,你有一个背包体积为n,如何把背包尽可能装满,如果还每次选最原创 2021-04-17 14:58:44 · 527 阅读 · 0 评论 -
一文搞懂动态规划,上机考试再也不会慌
文章目录什么是动态规划动态规划的解题步骤动态规划应该如何debug总结什么是动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,在关于贪心算法,你该了解这些!中我举了一个背包问题的例子。例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物原创 2021-05-04 19:11:56 · 409 阅读 · 0 评论 -
一文搞懂回溯算法,上机考试再也不会慌
文章目录什么是回溯法回溯法的效率回溯法解决的问题如何理解回溯法回溯法模板总结别看回溯法很难,但回溯法就是暴力解法+剪枝操作什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯。回溯是递归的副产品,只要有递归就会有回溯。「所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数」。回溯法的效率回溯法的性能如何呢,这里要和大家说清楚了,「虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法原创 2021-04-04 15:08:04 · 1179 阅读 · 0 评论 -
买卖股票的最佳日期,使用动态规划解决最长上升子序列的问题
文章目录leetcode121 买卖股票的最佳日期①leetcode122 买卖股票的最佳日期②leetcode123 买卖股票的最佳时机③leetcode121 买卖股票的最佳日期①题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1原创 2021-02-28 20:42:22 · 497 阅读 · 0 评论 -
一文解析动态规划中的背包问题
01背包问题 + 完全背包问题完全背包是由01背包稍作变化而来,即:完全背包的物品数量是无限的。01背包问题是一个物品只能用一次,完全背包问题是一个物品可以用无数次。二维数组处理01背包问题01 背包有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。这是标准的背包问题,以至于很多同学看了这个自然就会想到背包,甚至都不知道暴力的解法应该怎么解了。这样其实是没有从底向上原创 2021-05-04 19:00:18 · 828 阅读 · 0 评论