算法问题实战策略 JUMPGAME 记忆化搜索
地址 https://algospot.com/judge/problem/read/JUMPGAME
每次我们可以选择 右或者下移动当前数字 x+num || y+num
但是遍历过于低效 会TLE
我们需要建立一个记录 记录当前的格子是否已经遍历过 如果已经遍历过直接取其记录的结果即可(当前格子是否已经遍历 遍历的结果是可以到达还是不能到达)
代码如下

1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 /* 7 2 8 7 9 2 5 1 6 1 4 1 10 6 1 1 2 2 9 3 11 7 2 3 2 1 3 1 12 1 1 3 1 7 1 2 13 4 1 2 3 4 1 2 14 3 3 1 2 3 4 1 15 1 5 2 9 4 7 0 16 7 17 2 5 1 6 1 4 1 18 6 1 1 2 2 9 3 19 7 2 3 2 1 3 1 20 1 1 3 1 7 1 2 21 4 1 2 3 4 1 3 22 3 3 1 2 3 4 1 23 1 5 2 9 4 7 0 24 */ 25 vector<vector<int>> v(150,vector<int>(150)); 26 vector<vector<int>> vis(150, vector<int>(150)); 27 int n; int m; 28 29 int jump(int x,int y) 30 { 31 if (x >= m || x<0 || y <0 || y >= m) return -1; 32 if (vis[x][y] == 1) 33 return 0; 34 vis[x][y] = 1; 35 if (x == m - 1 && y == m - 1) 36 return 1; 37 int jumpcount = v[x][y]; 38 int ret1 = jump(x + jumpcount, y); 39 int ret2 = jump(x,y+ jumpcount); 40 41 if (ret1 == 1 || ret2 == 1) 42 return 1; 43 return -1; 44 } 45 46 47 void solve() 48 { 49 int x = 0, y = 0; 50 51 int ret = jump(0,0); 52 if (ret == 1) { 53 cout << "YES" << endl; 54 } 55 else { 56 cout << "NO" << endl; 57 } 58 } 59 60 int main() 61 { 62 cin >> n; 63 while (n--) { 64 for (int i = 0; i < 150; i++) 65 for (int j = 0; j < 150; j++) 66 v[i][j] = 0; 67 for (int i = 0; i < 150; i++) 68 for (int j = 0; j < 150; j++) 69 vis[i][j] = 0; 70 71 72 cin >> m; 73 for (int i = 0; i < m; i++) { 74 for (int j = 0; j < m; j++) { 75 cin >> v[i][j]; 76 } 77 } 78 79 solve(); 80 } 81 82 83 return 0; 84 }
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话