- 博客(3)
- 收藏
- 关注
原创 祖玛游戏(记忆搜索+A*算法)
使用优先队列存储每种情况的信息,优选探索cur+eva值最小的情况,当board中所有球被移除时,此时的cur即是我们要求的最少球数量,因为队列中其他情况的cur+eva皆大于当前情况的cur,这说明,其他情况最少需要花费球的数量都大于当前情况花费球的数量,故而当前情况花费球的数量就是最小的!故而每种情况我们用一个字符串来记录,将当前已知的所有情况存储在HashMap中,并记录当前情况花费球的个数,若后期探索过程中遇到同样的情况,则只需保留花费球数量最少的情况即可。2.插入球时只需考虑两种情况。
2023-05-11 20:59:32
523
2
原创 推箱子(广度优先BFS+动态规划DP)
初始化:将箱子的初始位置,人的初始位置,初始方向(因为初始情况不存在箱子的移动,所以没有初始方向,设置为-1,与后面的情况要分开讨论)添加入队列中。本题考查的知识点是广度优先和动态规划,以箱子当作主体,人可以从上下左右四个方向推箱子,故而对于箱子的每个位置,我们需要考虑人从不同的方向推箱子产生的代价(即箱子从初始位置到当前位置的最小移动次数)。③判断人是否能从当前位置到达箱子的-k侧(判断箱子的-k侧与人的位置是否是联通的,注意:箱子是不能越过的)①判断箱子移动后的位置和人推箱子的位置是否越界;
2023-05-09 21:28:02
535
2
原创 摘水果(回溯or二分法)
已知路径上有n个水果,水果位置索引为{0, 1, ..., n-1},假设人的位置索引为cur,表示人在第cur个水果的左侧,或startPos刚好和第cur个水果位置重合,若所有水果都在人的右侧,则人的位置索引为cur = n。故而对于人而言,每走一步后,下一步都有两个选择,需要分别考虑两种情况,此处采用回溯递归的思路解决问题。人摘水果的路线,要么是一直向一个方向走,要么是先向一个方向走,然后再向反方向走摘水果。若cur为其他值,则表示,人既可以向左走摘水果,又可以向右走摘水果。力扣原题,java求解。
2023-05-04 15:48:35
120
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人