
算法基础
文章平均质量分 77
一个数学不怎么好的程序员
在虚空中,你一天都不能渡过
展开
-
备战蓝桥 2020-1-3
目录动态规划不同路径1.DP解法2.DFS(会超时)3.数论的方法不同路径II整数拆分今日复习代码动态规划不同路径不同路径这题其实并没有很难,在昨天刷了几道基础dp题之后,很快就做出来了,只不过中间有个初始化要小心一下。不过这道题最应该收获的,应该是其他两种做法。1.DP解法 int dp[101][101]={0}; //dp数组表示到达dp[i][j],即从起点到(i,j)有多少路径 //第二步:状态转移方程:dp[i][j]=dp[i-1][j]+dp[i][j-原创 2022-01-03 16:04:36 · 2158 阅读 · 3 评论 -
备战蓝桥 2022-1-2
目录动态规划斐波那契数思路爬楼梯使用最小花费爬楼梯二级目录三级目录动态规划网上有很多讲动态规划的文章,鱼龙混杂,所以作者在这里就不再多赘述了,推荐一篇觉得写动态规划写的比较好的文章,动态规划理论基础斐波那契数斐波那契数思路这是一道大家刚刚接触c语言时都写过的题目,相信大家那时基本都是用递归的方法来写的,但递归的复杂度一般都很高,这道题为O(2^N),显然在算法比赛中这种写法是不适用的。 /* 递归的写法 if(n==0) {原创 2022-01-03 13:30:54 · 1047 阅读 · 0 评论 -
备战蓝桥 2021-12-31
目录二分查找题目思路移除元素题目思路带分数题目二分查找题目思路这道题就是一道很简单的二分查找,但也有我们很多要注意的地方,区间的划分最为关键。其实区间划分的问题,一般我们有两种区间划分的方法,1,[left,right-1] 2,[left,right) ,这两种划分是等价的,其次你还要搞明白,[right,right]这个区间是有意思的,因为你可以取到right这个位置的值,而[right,right)这个区间是没有意义的,因为你取不到right这个地方的值。当你明白了这几个点了之后,区间原创 2022-01-02 14:04:05 · 3334 阅读 · 7 评论 -
递归与递推(辅导课总结) 2021-12-29
目录递推Acwing 95. 费解的开关题目思路注意点代码Acwing717.简单斐波那契题目最多的写法(递归)递推优化递归Acwing92. 递归实现指数型枚举解法:dfs(属于递归的一种)y总遍历的顺序递归图解分析代码随想录的遍历顺序Acwing94. 递归实现排列型枚举解法:dfs(其实和上一题差不多)递推Acwing 95. 费解的开关题目思路这题的大概思路有两个:dfs和递推。 如果使用dfs来做的话,可能会超时。下面我们看看递推的大致思路:首先我们这道题的目的是让每个灯都变亮,我原创 2021-12-29 18:28:23 · 763 阅读 · 0 评论 -
字符串匹配问题(BF,KMP)
文章目录BF算法代码实现BF算法BF的全称为Brute Force,所以BF算法又叫做暴力算法。下面我们来看看BF算法解决字符串匹配问题的一个例子,相信看完之后,BF算法解决此问题中的难点你就明白了。其实BF算法解决字符串匹配问题是很简单的,比较让人难以理解的就是他的返回值i-j+1和为什么最后打印i-j,在图中已经将此问题说的很清楚了。代码实现#include<iostream>#include<assert.h>#include<string.h>原创 2021-10-03 14:34:17 · 471 阅读 · 4 评论 -
算法基础——用数组模拟实现单链表和双向链表
这里写目录标题铺垫基本思想初始化向头节点插入在任意节点之后插入一个x删除任意位置之后的一个节点题目代码实现铺垫在学这个之前,小伙伴们最好先要了解下如何用结构体形成单链表,因为如果理解了那个,这儿就很好理解了,不懂得小伙伴可以去看看博主之前的文章。带你重温单链表很多小伙伴可能会好奇?结构体形成单链表玩的好好的,为什么要用数组来玩了?其实这就要涉及到效率的问题了,如果用之前的方法,在C++中我们每创建一个节点,就要new一下,如果单链表很长,那么会很消耗时间,有时在面试题中甚至都过不了,因为new消耗的时原创 2021-10-01 15:17:50 · 882 阅读 · 19 评论