算法基础
文章平均质量分 95
有关心情
在python的道路上越走越远(一个初级小白,永远的小白)
展开
-
浅谈递归思想
文章目录前言递归的形态归纳法递归的思想递归思想的练习棋盘放麦粒汉诺塔问题赏金问题归并排序前言如果一谈到“递归”你的脑海就浮现出“自己调用自己”,我想说:“你可能并不懂递归”。当然了,这仅仅是个人鄙见。许多时候,递归确实在“自己调用自己”。我们知道这个道理吧,想用递归解决实际问题却又犯难了——怎么就写不出代码来了呢?我想异于网上千篇一律文章的讲法,小小的别开生面一回,用自己认为容易理解的方式来...原创 2018-12-27 12:34:19 · 4396 阅读 · 0 评论 -
排列与组合
排列与组合文章目录排列与组合前言方法1方法2前言诚然,排列组合作为高考数学里的送分题,它的出现让我这样的弱鸡一度欢喜。地处中央,上承“选择填空”,下启“数列圆锥”,紧绷的神经在这里可以微微松懈。我依然记得排列公式是Anm=n!(n−m)!A_{n}^{m}= \frac{n!}{(n-m)!}Anm=(n−m)!n!,而组合是Cnm=n!m!∗(n−m)!C_{n}^{m} = \fr...原创 2019-01-17 10:11:11 · 266 阅读 · 0 评论 -
动态规划-用编辑距离解释
动态规划-用编辑距离解释文章目录动态规划-用编辑距离解释编辑距离状态转移递归实现迭代实现代码优化动态规划感谢编辑距离我们把“从字符串A到字符串B”的最少操作次数称作编辑距离。操作包含了:插入,删除,替换。比如字符串A = “abc”,字符串B = “abcd”,那么从A到B只需要增加一个字母“d”,所以编辑距离为1;同样的,从B到A只需要删除“d”,所以编辑距离也为1。状态转移将需要...原创 2019-01-24 11:29:50 · 631 阅读 · 0 评论 -
二分查找
二分查找二分查找是一个比较简单的算法,用 C++ 语言实现如下:template <typename T>int binary_search( const T& key, // 搜索元素 key vector<int>::const_iterator data, // 数组起始位置 int N) // 元素...原创 2019-07-14 08:30:57 · 249 阅读 · 0 评论 -
对角线问题
对角线问题问题这里有 n * n 矩阵,要求左上到右下的对角线上都为 x,其他地方为 y。x、y 任意值,但不相等。x y y ... yy x y ... yy y x ... y. . . ... .. . . ... .y y y ... x解决我们可以把这里的矩阵看做一个二维数组,长度为 N;x,y 赋任意不等常数即可。>>> 方法一现在,最...原创 2019-07-15 10:25:43 · 990 阅读 · 0 评论 -
3n + 1 问题——引发的缓存思考
3n + 1 问题——引发的缓存思考文章目录3n + 1 问题——引发的缓存思考问题描述方法 1(实时计算)方法 2(结果缓存)方法 3(过程缓存)最后问题描述有这样一个规律:对任意大于 1 的自然数 n,如果 n 为奇数,将其变化为 3n + 1;如果 n 为偶数,将其变化为 n/2。经过若干次变化后,一定会使 n 变为 1。如果 n = 5:5 -> 16 -> 8 -...原创 2019-10-01 00:40:11 · 278 阅读 · 0 评论