![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 76
上山打 老虎
纸上得来终觉浅,绝知此事要躬行
展开
-
滑动窗口
一、前言在数组中查找一个数,可以使用二分法查找,但是算法问题中还有一些是在数组中查找一个区间,这时滑动窗口就是一种很好的解决思路。很多同学学过滑动窗口算法,但是一做题就错,这是因为有很多细节问题会在解答时出错,本文将依次介绍该算法的模板,易错点,分类题型,希望读者看完之后能极大的提高做题速度以及准确度。二、什么是滑动窗口概念:滑动窗口是双指针算法的一种,利用双指针在数组单一方向滑动,形成一个子区间,对子区间进行剪枝,最终得出满足条件的解。过程如下:windows中元素未完全原创 2021-03-29 11:50:54 · 252 阅读 · 0 评论 -
广度优先搜索
广度优先搜索一、前言先看这样一个小故事,有一天,婷婷去超超的大学,想给异地已久的超超一个惊喜。但是方向感不好的婷婷很快就在大学迷路了。超超得知后便去寻找思恋已久的婷婷。此时超超的妈妈也在来学校的路上,现在超超要以最快的速度去寻找婷婷(不然可能会出现我和你妈同时迷路你先救谁的问题了????)。那么,问题来了,你可以制定一种策略帮超超尽快找到婷婷吗?下面将依次介绍广度优先搜索的定义,算法模板,俩种常见的题型,以及常见的出题点于易错点,帮助超超解决问题的同时,再顺手拿个offer!二、什么是广搜广原创 2021-03-29 11:45:00 · 927 阅读 · 0 评论 -
详解二分法
一、简单二分前言一直以来我对二分都有一个误解,认为问题必须满足某种有序才可以用二分法去解决问题,这种想法有点狭义化二分法了,其实二分法是一种算法思想,通过不断对折区间的方式,帮助我们得到满足条件的解,在我们写算法题的时候二分法是必须要满足有序性的,他可能是局部有序,也有可能是整体有序,但是一定具有单调性,下面将通过几个例题来给大家讲解二分的思想,先看一道很有意思的趣味题:有N件产品,他们的重量都是G,但是当中有一件是不合格的产品,他的重量是g,那么现在给你一个称,求你称最少的次数找出这个产品,相信很原创 2021-02-19 20:02:18 · 18926 阅读 · 1 评论 -
动态规划心得
一、找准三个基本要素重叠子问题:求每一个状态都会要求的解,比如斐波那契数列的第n项最优子结构:获取状态n时,其他状态的最优情况,没有其他条件约束状态转移方程:求第n个状态值的方法,比如斐波那契的f(n)=f(n-1)+f(n-2)二、思路过程确定base case,因为求状态n需要用前面的状态去推倒确定状态,也就是dp[]数组中,下标的意义确定dp数组中变量的含义确定状态转移方程但凡遇到需要递归的问题,最好都画出递归树,这对你分析算法的复杂度,寻找算法低原创 2021-01-25 20:29:15 · 219 阅读 · 4 评论 -
滑动窗口
一、简介上一篇文章我们说了二分法的实际应用,二分法用于查找某个特俗位置时很好用,但是实际问题中,还有很多情况是要求我们要在一个固定数组中查找一串数满足某个固定条件,比如你肯定遇到过这样一个问题,那么滑动窗口主要就是用来解决这样的问题,在固定数组中查找特殊数组二、问题最小覆盖字串分析:这是力扣上关于滑动窗口非常经典的一题,那么这题的思路其实也是简单,所谓滑动窗口,你可以想象成是一个窗户,A这一半在另一半B上滑动,求满足情况的位置,很显然我们需要俩个容器,windows表示当前滑动窗口中的数,need满原创 2020-11-20 16:16:45 · 223 阅读 · 0 评论 -
摩尔投票
一、什么原创 2020-11-06 12:15:37 · 171 阅读 · 0 评论 -
奇数偶数公式
一、求小于n有多少个奇数和偶数(包括0)奇数有:i/2+1个偶数有:(i+1)/2个二、程序中的应用题目:所有奇数长度的数组之和给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[原创 2020-11-06 10:20:53 · 4925 阅读 · 0 评论 -
模拟类贪心
链接: 921. 使括号有效的最少添加.思路:很典型的一道利用栈解决的问题,这题贪心的策略在于用自己添加最少的括号让所有括号匹配在一起。因此我们要让尽量多的括号能匹配在一起,所以我们对字符串中出现的括号做讨论:1.出现‘(’:直接入栈2.出现‘)’:判断栈顶元素是否是’(’,如果是将栈顶元素弹栈,如果不是则继续压栈。最后判断栈中还有多少个元素即可解决代码:class Solution...原创 2020-02-13 10:11:31 · 139 阅读 · 0 评论 -
排序类贪心
贪心算法下面这篇文章就简单介绍一下我对贪心算法的认识,算是对之前知识的一个回顾,首先贪心算法获得的局部最优解而不是整体最优解,这时候你肯定在想什么是整体最优解什么是局部最优解呢,举个简单的例子吧,如果希望中国GDP可以快速增长那么我们现在把中国储藏的石油这些全挖了,GDP应该能增长不少吧,这个获得的就是一个局部的最优解,他并没有考虑未来的发展情况,那么以后还会为大家介绍动态规划(背包问题)。下面...原创 2019-01-06 21:12:32 · 427 阅读 · 2 评论 -
贪心算法类型总结
下面这篇文章就简单介绍一下我对贪心算法的认识,算是对之前知识的一个回顾,首先贪心算法获得的局部最优解而不是整体最优解,这时候你肯定在想什么是整体最优解什么是局部最优解呢,举个简单的例子吧,如果希望中国GDP可以快速增长那么我们现在把中国储藏的石油这些全挖了,GDP应该能增长不少吧,这个获得的就是一个局部的最优解,他并没有考虑未来的发展情况,那么以后还会为大家介绍动态规划(背包问题)。那么我先做做...原创 2020-02-13 12:44:42 · 879 阅读 · 0 评论 -
深度优先算法
深度优先算法前言深度优先是遍历图的一种算法,对于我们解蓝桥杯的题目,我们可以不懂图是什么,他是怎样遍历图。对于蓝桥杯来说他就是一种暴力的算法,就是一种将很多层for循环化成递归的方法,用于爆破来解一些问题。他是蓝桥杯的必考考点,希望大家务必掌握,这种题目一般有俩种类型,排列和组合。下面我们通过几道题目来了解这个算法。排序例题题目背景猪猪hanke得到了一只鸡题目描述猪猪Hanke特别...原创 2019-01-23 12:02:07 · 744 阅读 · 0 评论 -
大数问题
大数问题前言大数问题是蓝桥杯这几年的热门考点了,最近看面经的时候,我发现公司面试也喜欢问大数问题,可能蓝桥杯这样更贴近与实际需要吧,一般会有一道结果填空题是大数问题,属于送分题,拿下这题和前面的爆破算法,基本就可以稳住三等奖了。解决这类问题需要注意这几点就行了:1.知道BigInteeger中的常见方法(加减乘除,等于)2.了解String类中的基本操作3.有基本的算法设计思路(刷过一定...原创 2019-01-27 10:00:14 · 322 阅读 · 0 评论 -
动态规划
一.背包问题引用书上关于0-1背包和部分背包的阐述:二.贪心与动态规划区别关于红色矩形部分解释为什么0-1不能使用贪心算法,是因为当你选择一个物品时,整个物品的大小都需要计算,然而背包的的大小又是固定的,那么剩下的背包大小与剩下的物品之间就有个容纳问题。就像图b第二个树状图属于容量20,而剩余物品大小30,显然放不下,所以说选择放与不放会影响后放物体能否尽可能填满背包。这个与部分背包问题...转载 2019-01-25 11:40:33 · 123 阅读 · 0 评论 -
递归
递归算法简介递归也就是自己调用自己的一种算法,通俗来说就是写一个子函数,然后在子函数中反复调用自身的过程,递归可以应对一些反复执行同一单调过程的题目。如在斐波那契数列求第n项的问题中就是反复执行执行第三项等于前俩项,所以就可以用递归来解决这个问题。做重复循环的问题还有一种方法就是之前大家学的for循环了,一开始不习惯用递归解决问题的同学都可以先从for循环入手,等用for循环做出了相关问题,再...原创 2019-01-18 20:03:11 · 157 阅读 · 0 评论 -
快速排序
快速排序快速排序对于初学者来说是一个比较难的排序算法了,说实话我刚上大一的时候,去图书馆看快速排序简直给我整疯了,所以一开始不会也是正常的。我觉得弄懂这个排序算法应该需要下面几个部分吧1.先要弄懂递归算法,在我的博客中也有我对递归的一个介绍2.弄懂排序过程:我建议大家不要只看代码,去看一下视频可能帮助大家更快的了解这个过程到底是怎样的,下面附上我在b站上找的视频连接,https://www....原创 2019-01-07 21:32:34 · 175 阅读 · 2 评论 -
爆破算法
爆破算法下面这篇文章就简单介绍一下我对爆破算法的认识与了解吧,每年复习都会看到这个算法,老是回去看这些又太耽误时间,所以写了这篇文章来记录一下,下面上案例:生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整...原创 2018-12-30 09:09:43 · 718 阅读 · 1 评论