算法
文章平均质量分 89
愿此后再无WA
一个人必须不断努力,才能不被茫茫人海淹没。
展开
-
数据结构-二叉树:给出前中后其中两种遍历顺序,如何求第三种?超详细解析
大家好,我是 @愿此后再无WA,可以叫我小A,一位阳光帅小伙,对算法领域比较感兴趣。如果我的文章对您有用,欢迎持续关注,我们一起进步!最近刷题遇到了一个关于二叉树的问题,因为有些知识点比较模糊于是我又补了一下数据结构,看数据结构的过程中发现了 “在二叉树中,给出前中后其中两种遍历顺序,如何求第三种?” 这种问题,感觉挺重要的,于是我就记录了下来,也将自己的思路分享跟大家,希望对各位有所帮助。原创 2022-03-06 16:32:33 · 2126 阅读 · 19 评论 -
蓝桥杯 真题演练(二) python 动态DP 最小公倍数
距离蓝桥杯竞赛还剩36天,每天进步一点点,积少成多,加油!大家好,我是 @愿此后再无WA,可以叫我小A,时刻这么多天我又回来啦,接下来我会好好刷题出好题解的!!一起加油努力呀!! 时间显示 这是竞赛的第一道大题,相对来说会比较简单,所以我们不要害怕题目,不要被1970,毫秒这些字眼给迷惑住了,一口气把题目看完之后你就会发现其实题目就是看起来难而已。 题目大意就是给一个毫秒数(但是毫秒数不用显示,相当于就是给一个秒数),让你将其转换成24小时制的时间显示。 路径 最小公倍数 动态规划 蓝桥杯路径真题原创 2022-03-04 17:30:06 · 925 阅读 · 25 评论 -
约瑟夫环问题模板 python
话题引入(参考自百度百科–约瑟夫问题)约瑟夫问题,是一个计算机科学和数学中的问题,在计算机编程的算法中,类似问题又称为约瑟夫环,又称“丢手绢问题”。问题来历据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友原创 2022-03-01 22:17:33 · 554 阅读 · 25 评论 -
蓝桥杯 ALGO-1004 无聊的逗 01背包+回溯 python
这逗志芃也太无聊了吧,玩这么一个游戏为了这道题能拿个AC我花了三天的时间才搞清楚,感觉这蓝桥杯还是有点难度啊,但话说回来还是实力不够呀,继续努力!!距离4月9号比赛还有一个半月不到的时间,我要抓紧了,一起加油!分析我们先来看一下题目 “他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的情况下长度最长是多少。” 看完题目我们就来分析一下可以得出哪些隐含条件?可以知道,木棍不一定要全部选完。因为要找出两根等长的木棍,所以两根木棍的长度之和原创 2022-02-24 22:30:58 · 1640 阅读 · 32 评论 -
蓝桥杯 ALGO-1006 拿金币 动态规划 双解法 python
题目分析这是动态规划的典型例题,每走一步选择的应该都是最优子结构,也就是走能拿到金币最多的格子。这里提供了两种思路解决此问题:回溯 与 dp数组。这两种思路可以说是以相反的方式找出最优解,一个自上而下,一个自下而上。回溯我们在起始点(0,0)位置出发,要么往下走,要么往右走,决定往右走还是往下走的唯一条件就是看哪个位置走到终点能拿到的金币数量多些,哪边拿得多多就选谁。同样的,在下一位置中,还是以同样的方式判断该往下走还是往右走,直到走到终点位置(n-1,n-1)。当走到终点位置(2,2)后(原创 2022-02-19 23:02:29 · 1027 阅读 · 13 评论 -
蓝桥杯 ALGO-1005 数字游戏 DFS记忆化搜索+剪枝+杨辉三角 python
题目问题描述给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。 例如: 3 1 2 4 4 3 6 7 9 16 现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。 输入格式第1行为两个正整数n,sum 输出格式一个1~N的一个排列样例输入4 16样例输出3 1 2原创 2022-02-18 00:25:22 · 4599 阅读 · 15 评论 -
【完美解析】蓝桥杯 省赛 杨辉三角形 python组 找规律+二分查找+组合数
题目分析我们看到杨辉三角形很容易想到一个数的值等于它肩膀两个数的和。为此,可以不断通过前一行的数求出后一行的数,重复上面操作,直到找到目标为止。但是看了用例规模后发现其涉及到十的九次方,数值非常大,只有20%的用例才在10以内,如果以刚才枚举的方式求解的话得的分值并不高。因此可以看出,这是一道思维题,需要找出其中的规律来求解。我们找找其中的规律,可以发现杨辉三角形具有以下特点:1.对称性杨辉三角形左右两边数字对称相等。2.渐增性越往中间数字越大,除最外层1外,越往下数字越大。3.组合数原创 2022-02-16 11:13:08 · 17106 阅读 · 75 评论 -
20分钟速成排序+查找算法(含模板)——二分查找,冒泡排序,快速排序
排序,查找算法种类繁多, 全部熟记不太现实,或许在二者之中各找寻一个适合自己的算法熟练使用它会更好。因此今天我分享几种常见算法供大家参考,它们分别是:二分查找,冒泡排序与快速排序。代码不长,背诵记忆也是一个不错的选择,我这里提供了模板。如果哪一步不明白,可以多print几下看看数据的变化,或者手写模拟过程。原创 2022-01-24 01:09:21 · 1915 阅读 · 12 评论 -
python itertools.permutations函数——全排列 函数使用 优化及算法实现思路 150帧gif教程让你看到爽
让你能够轻松学会全排列。原创 2022-01-20 23:36:49 · 9975 阅读 · 0 评论 -
python pow函数——幂运算 快速幂算法实现思路
说明python 内置pow函数用于实现幂的运算,在这里我使用的是快速幂算法实现pow函数功能。快速幂快速幂算法本质上基于的是分治思想。优点:其时间复杂度为 O (log₂N), 与暴力遍历时间复杂度O (N)相比效率有了质的提高。待完善之处:指数暂支持输入整数。思路不断将高次幂拆分成低次幂,直到低次幂无法再拆分为止。而此时低次幂的值就显而易见了,就是底数(1次幂)。然后通过最低次幂(1次幂)不断往上求取更高次幂的值,最终得出结果。我以2的10次方为例演示一实现思b路。原创 2022-01-13 23:40:51 · 3413 阅读 · 0 评论 -
5.最长回文子串之中心扩散法-python
题目给定字符串s,请找到字符串s中最长的回文子串 如:s= “badadb” 的回文子串str 为“ada”.s = "w" ,str = "w",s = "qe", str = "q"。解题思路首先我们要理解,何为最长回文子串?通俗点讲,回文子串就是字符串关于中点字符对称,左右两边长的一样。将字符串倒序后仍是原来的字符串。说到这里我们不得不提一下苏轼的一首有名回文诗。题金山寺 ...原创 2021-10-27 12:02:16 · 583 阅读 · 0 评论 -
python eval函数——求解字符串表达式 算法实现思路
说明应对不同情况下的字符串表达式求值,本篇提供双栈和单栈两种解法。当表达式较为简单不存在括号时,可使用单栈求解,其他情况使用双栈。算法一、单栈当表达式不存在括号时,如"3+2*5-4/2"可使用单栈求解。思路我们遍历表达式,每遇到一个运算符就对运算符前面的数字进行相应操作。定义了一个栈,将消除乘除号后的数字添进栈中,最后使用sum方法将栈内元素求和得出最终结果。当遇到"+"号时,将符号前面的数字(称为num)压入栈中 当遇到"-"号时,将(-num)压入栈中 当遇到"*"原创 2022-01-12 23:48:23 · 2628 阅读 · 20 评论