![](https://img-blog.csdnimg.cn/20210108165422380.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 85
详细解析算法 例题+图解方式
WhiteShirtI
不管你现在是什么状态 你要记住 生活中的目标就是快乐自由 每天开心
展开
-
递推与递归算法(兔子问题 C语言)
递推递推思想跟枚举思想一样,都是接近人类思维方式的思想,甚至在实际生活具有比枚举思想更多的应用场景。人脑在遇到未知的问题时,大多数人第一直觉都会从积累的「先验知识」出发,试图从「已知」推导「未知」,从而解决问题,说服自己。事实上,这就是一种递推的算法思想。递推思想的核心就是从已知条件出发,逐步推算出问题的解。实现方式很像是初高中时我们的数学考卷上一连串的「因为」「所以」。那个时候还是用三个点来表示的。而对于计算机而言,复杂的推导其实很难实现。计算机擅长的是执行高密度重复性高的工作,对于随机性高变化多端原创 2021-01-12 16:15:12 · 5107 阅读 · 0 评论 -
枚举算法(百钱百鸡问题 C语言)
枚举首先,最为简单的思想,枚举算法。枚举也叫穷举,顾名思义,就是穷尽列举。枚举思想的应用场景十分广泛,也非常容易理解。简单来说,枚举就是将问题的可能解依次列举出来,然后一一带入问题检验,从而从一系列可能解中获得能够解决问题的精确解。枚举虽然看起来简单,但是其实还是有一些容易被人忽视的考虑点。比方说待解决问题的「可能解/候选解」的筛选条件,「可能解」之间相互的影响,穷举「可能解」的代价,「可能解」的穷举方式等等。很多时候实际上不必去追求高大上的复杂算法结构,反而大道至简,采用枚举法就能够很好的规避系统复原创 2021-01-12 15:24:37 · 2618 阅读 · 0 评论 -
约瑟夫环问题(链表 + 公式)
约瑟夫环据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。而我们的问题是求出最后一个自杀的人解决约瑟夫环问题方法一、单向循环链表我们很容易想到的是用数据结构中的单向循环链表,构成逻辑上第一个环,假设有n个人,那么就需要定义n个结点。原创 2021-01-10 11:20:40 · 4432 阅读 · 0 评论 -
算法 摩尔投票算法(图解例题)
摩尔投票算法摩尔投票算法也叫多数投票算法摩尔投票法,解决的问题是如何在任意多的候选人中,选出票数超过一半的那个人。注意,是超出一半票数的那个人。假设投票是这样的,[A, C, A, A, B],ABC 是指三个候选人。第一张票与第二张票进行对坑,如果票不同则互相抵消掉;接着第三票与第四票进行对坑,如果票相同,则增加这个候选人的可抵消票数;这个候选人拿着可抵消票数与第五张票对坑,如果票不同,则互相抵消掉,即候选人的可抵消票数 -1。动画演示应用来源:leetcode 剑指offer 39原创 2021-01-08 16:31:06 · 1334 阅读 · 0 评论