![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 54
JavaArtist
这个作者很懒,什么都没留下…
展开
-
动态规划解最长回文子串
首先我们需要了解一下回文串的定义是什么?回文串就是从左往右读和从右往左读的结果是一样的,例如aba、abcba、bbbb等等。判断是不是回文串很容易,依次判断第一个字符和倒数第一个字符、第二个字符和倒数第二个字符…是否相等就行,还有其他方法都可以。然后找最长回文子串就是把所有的子串列出来,每个判断是否是回文串,最后找出一个最长的,这是最暴力也是最耗时的方法。当然我们也可以优化一下,从最长的子串开始判断,依次往短的子串开始找,这样找到的第一条回文子串就是最长的。但是这两个方法始终不够巧妙,从回文串的原创 2021-10-09 15:12:43 · 257 阅读 · 0 评论 -
01背包问题
01背包问题01背包问题是一个很经典的动态规划算法题,给你一个固定容量的背包,然后你面前有一堆体积和价值不一的物品,你怎么挑选才能在不超过背包容量的情况下,物品的总价值尽可能高。你可能一开始的想法是拿每个物品的价值除以体积,计算出每单位空间的价值是多少,然后进行排序,依次选取“性价比”高的物品。但是这种思路不一定能找到最优解,可能选完背包还剩一些空间,调整一下选取的物品可能会获得更大的价值,所以这里就要讲一下动态规划的解法。思路比如现在有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个原创 2021-04-18 23:04:25 · 132 阅读 · 0 评论 -
深度优先搜索
什么是深度优先搜索?还记得最先接触深度搜索的时候,还是在大一的课堂上,王老师为了向我们这群连门槛还没摸到的傻白甜炫一下技术,写了一个用深度优先搜索为思想核心的自动走迷宫小程序,当时引得大家一众欢呼。我内心也是一阵感叹:“难到这就是传说中的人工智能?这个程序的逻辑应该很麻烦吧”,后来才知道只是实现了一个很简单的深度优先搜索而已,说白了核心思想就是一条路走到底,走不下去了就回退,再判断有没有其他路可走,没了就再回退,直到走完所有的点为止废话不多说,直接上图演示!!我们还是遍历上次广度优先搜索的那张图还是原创 2021-04-01 23:00:42 · 100 阅读 · 0 评论 -
广度优先搜索
什么是广度优先搜索?其实从名字上看我们就能大概知道广度优先搜索是什么,就是优先从广度去进行搜索(感觉自己在说废话)。举个例子,小时候大家多多少少都玩过迷宫游戏,到了一个岔路口,就有很多条路摆在你眼前,然而只有一条路才是通往终点的通天大道。这时候怎么办?我们走到所有的路口都去瞅一眼,把每条路记录下来,然后又走到每条路的岔路口,继续上一步操作,直到走完所有的岔路口。废话不多说,不如直接开始上干货!!我们现在就从a点开始遍历下面这个无向图我们首先访问起点a点,此时index = a访问过的点我们把它原创 2021-04-01 22:27:08 · 52 阅读 · 0 评论