
算法学习
文章平均质量分 72
计算机算法讲解以及上机练习题的讲解
PRML_MAN
喜欢算法和编程,希望大家一起探讨技术问题,也希望有问题可以给我留言
展开
-
算法之图解单纯形算法C++
线性规划问题介绍本文主要通过一个简单的线性规划问题来介绍单纯形算法,线性规划问题如下:我们将线性规划问题区域通过图像绘制出来,如下图:其中,CB为直线x+2y=6,BD为直线x+y=4,红色的直线为 3x+5y=0的直线。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式原创 2022-05-01 22:27:28 · 1250 阅读 · 0 评论 -
图像算法之图像平移
在图像处理领域中,图像变换是最基本的算法,本文主要详细分享一下图像平移算法的原理和代码实现,废话不多说,直接上干货。1、图像平移的原理在计算机图像中,主要是用的是 像素直角坐标系 我们把图像的左上角定为原点O,向右为x轴,向下为y轴,见下图:图像平移,就是把图像中像素的坐标(x,y)进行处理,设x,y方向的平移量分别为dx,dy,平移后的坐标为(x1,y1),则计算公式为:首先,我们将上面的公式进行填补转换我们通过矩阵运算来表示上面的两个等式,理论讲解结束。2 代码实现基于openc原创 2022-04-27 22:44:17 · 7497 阅读 · 0 评论 -
算法之滑动窗口寻找最长无重复字符串
今天无聊的时候刷了一道leetcode的题目,给定字符串,查找最长无重复字符串,具体题目信息如下:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的原创 2021-11-24 20:09:36 · 1489 阅读 · 1 评论 -
算法之主成分分析PCA详解(包含理论推导和代码)
1、PCA介绍主成分分析算法(Principal Component Analysis)简称PCA,是一种常用的统计方法。该方法对高维的数据进行筛选,选出最具有代表性最重要的的几维数据,是一种有效的降维方法。为什么要用PCA?在m维数据中,当m非常大的时候,往往会存在较多相关性比较强的数据,从而影响算法的性能和准确率,因此,学者就开始研究,在保证数据的信息量尽量不变或很少改变的情况下,较大幅度的降低数据的维度呢?那么PCA就出来了。2、PCA的理论推导PCA是一种数据降维的算法,假设有m维数据,每原创 2021-11-13 22:05:25 · 3575 阅读 · 0 评论 -
算法之并查集
并查集,顾名思义,就是合并不同的集合,并查集是一种集合合并和查找算法。这是一种思想很奇妙的算法,学会它,在你后续的程序学习中可以有很多的可以用的地方。什么是并查集?举个栗子来更好的理解一下什么是并查集。球球大作战大家应该都玩过吧,我们对这个游戏做一个修改,只能大球碰到小球可以把小球吃掉,小球可以融合到打球的内部。那么问题来了,初始化有n个小球,经过不断的战斗,第i个小球当前是在谁的身上?从上面的图中,大家可以看出来,通过4轮的pk,最终1,2,3,8最终都被4号吃掉了,5,7被6号吃掉了。并查集的主原创 2021-11-03 20:59:27 · 316 阅读 · 0 评论 -
算法之KMP算法 全新思路介绍!
KMP算法是一个经典的字符串匹配算法,也是一种常用的字符串匹配算法。在KMP算法没出现之前,大家在字符串匹配的时候,都是两个for循环嵌套完成字符串之间的匹配,这种算法称作 BF算法(暴力求解)。当时Knuth,Morris,Pratt三为大师发现这种方法太慢了,他们发现了一个规律,有些字符串匹配失败后,不需要从头重新开始匹配下一个,就这样,在他们的努力之下,完成了这个算法,后人为了纪念这三个大神,取他们名字的首字母将这个算法称为KMP算法,KMP的思想是字符串匹配历史上的重要转折点,后续基于KMP的思想原创 2021-10-25 21:20:44 · 679 阅读 · 1 评论 -
深度学习环境入门之手写数字识别
在自己的windows环境下配置好了深度学习的环境,本文主要记录一下用深度学习的环境下实现一个简单的手写数字识别的模型训练和使用。1、原创 2021-10-19 21:55:58 · 1741 阅读 · 5 评论 -
算法之位运算求解二进制中1的个数
对于二进制,是当时大数学家莱布尼兹研究中国的周易后,他发表了“二进制算术的阐述”,副标题为 ”关于只用0与1,兼论其用处及伏羲所用数字的意义“,该文章对200年后计算机的存储产生了重要影响。本文主要介绍利用位运算来计算二进制中1的个数。题目如下:二进制中1的个数输入一个 32 位整数,输出该数二进制表示中 1 的个数。注意:负数在计算机中用其绝对值的补码来表示。样例1输入:9输出:2解释:9的二进制表示是1001,一共有2个1。样例2输入:-2输出:31解释:-2在计算机里会原创 2021-04-05 22:03:15 · 1834 阅读 · 0 评论 -
算法之迪杰斯特拉(dijkstra)非常详细介绍
迪杰斯特拉(dijkstra)算法是单源最短路径问题的求解方法。单源最短路径就在给出一个固定网络,指定一个原点s,一个目标点e,求这两个点之间的最短路径。举个栗子来理解一下。小明上学的时候,从家到学校的道路非常多,小明为了减少路上骑车的时间,因此,想找出一个最短的路径。他构造一个网络图,如下:小明是一个很喜欢动脑筋的同学,他开始研究如何才能找出最优的路径呢?1)所有的点到家的距离都进行初始化:2)每次选择距离家最短的一个点,然后用这个点的距离更新其他相邻点到家的距离,如果比当前的点小,则更新节点原创 2021-03-07 11:01:01 · 83553 阅读 · 24 评论 -
算法之动态规划(DP)求解完全背包问题
算法之动态规划(DP)求解01背包问题上面这篇文章主要讲解了01背包问题和动态规划算法,如果你不了解动态规划算法,建议先浏览一下这篇文章熟悉一下,因为,本文的算法思想是基于这篇文章的。1、什么是完全背包问题?**01背包问题:**有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品只能取1次放入背包中,背包所有物品权重和最大是多少?完全背包: 有一个背包的容积为V,有N个物品,每个物品的体积为v[i],权重为w[i],每个物品可以取无限次放入背包中,背包所有物品权重和原创 2021-03-06 09:21:43 · 17733 阅读 · 8 评论 -
算法之动态规划(DP)求解01背包问题
本文主要介绍动态规划算法求解01背包问题。什么是01背包问题?什么是动态规划?动态规划怎么求解01背包问题?通过阅读本文能够解答上面的三个问题。1、什么是01背包问题?01背包问题是一种比较常见的问题,例如,你(或者你女盆友)有一个lv包包,出门的时候发现容量V固定,但是又要装口红,装防晒霜,装银行卡,装钥匙,装眼镜,装护手霜,装…,每种物品只能装一个,(是不是发现女人出门真麻烦?这也是女人最有智慧的地方,每次都能够快速的完成01背包问题的求解),需要装的这些东西呢只能选择装或者不装,每个物品的空间大小原创 2021-03-05 22:43:55 · 3478 阅读 · 2 评论 -
矩阵中的路径----深度优先遍历
题目: 矩阵中的路径请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。注意: 输入的路径不为空; 所有出现的字符均为大写英文字母;样例matrix=[ ["A","B","C","E"], ["S","F","C","S"], ["A","D","E","E"]]结果:str="BCCE"原创 2021-02-24 20:51:10 · 761 阅读 · 0 评论