算法、技巧
北海南风
这个作者很懒,什么都没留下…
展开
-
迷宫问题(java,深度优先搜索-dfs)
这里只提供参考思路与参考代码,因为迷宫路障规格不一样,结果也不一样。 迷宫问题,我们首先要定的就是一个策略,即先走哪个方向,直到那个方向没法走了,再换哪个方向。(策略不一样,路径结果也可能不一样)。 这里我制定的策略为:下右上左。 # --> 墙 O --> 未走(可走)的路 Y --> 走过的路 N --> 死路(这个根据题意或自己设定)。 然后我们最好把围墙给他,那样就不需要考虑边界的情况。 好了,直接上代码 import java.util.Arrays; /* * #原创 2020-08-20 15:55:27 · 925 阅读 · 0 评论 -
算法高效技巧之:活用递推(java)
活用递推: (直接暴力会超时)。 对一个确定位置的A来说,以它形成的PAT个数等于它左边P的个数乘以它右边T的个数。 于是问题就转换为,对字符串中的每个A,计算它左边P的个数和它右边T的个数的乘积,然后把所以A的这个乘积相加就是答案。 思路: 设定一个数组numP,记录每一位左边P的个数(含当前位),从头到尾遍历,如果当前位是P,那么numP[i]就等于numP[i-1]+1;如果当前位不是P,那么numP[i]就等于numP[i-1]。 以同样的方法可以计算出每一位右边T的个数,为了节省代码量,不妨在原创 2020-09-29 16:00:42 · 157 阅读 · 0 评论