题目

某n*n的棋盘的每个格子中都有1到9个整数。从棋盘的左上角出发,向右或向下每次跳跃格子所指定的格数,判断是否能够到达棋盘的右下角。如果能,输出true, 否则输出false。

输入:

输入第一行为整数n,表示棋盘方格的数量。其后的n行,各行均有n个数字。表示在该方格中可以向下或向右跳跃的方格数。

输出:

输出1行,true或者false。true表示从左上角可以跳跃到右下角,否则为false。

样例输入:

7

2 5 1 6 1 4 1

6 1 1 2 2 9 3

7 2 3 2 1 3 1

1 1 3 1 7 1 2

4 1 2 3 4 1 2

3 3 1 2 3 4 1

1 5 2 9 4 7 1

样例输出:

true

要求

1、写出求解样例输入时的求解过程。

2、写出算法分析过程,编写程序求解上述问题,并分析算法的时间复杂度。

参考题解

这道题是一维数组的,但它是前后跳,本题是右下跳,思路是差不多的,类似深度遍历。

https://leetcode-cn.com/problems/jump-game-iii/solution/dfs-by-llj-666/

分析

比较简单,看代码就能懂,不分析了。

#include<stdio.h>
#include<stdlib.h>int n,flag = 0;
int i = 0, j = 0;
int **arr;void jump(int i,int j) {// 结束条件1:成功了if (i == n-1 && j == n-1) {flag = 1;return;}// 结束条件2:碰壁了,退回上一步if (i >= 7 || j >= 7) {return;}// 结束条件2:成功了就别再走了if (flag == 1){return;}//向右移动jump(i, j + arr[i][j]);//向下移动 jump(i + arr[i][j], j);
}int main() {scanf("%d", &n);// 动态生成二维数组arr = (int **)malloc(n*sizeof(int *));for (int i = 0; i < n;i++)arr[i] = (int*)malloc(n*sizeof(int));// 填入棋盘数字for (int row = 0; row < n; row++)for (int col = 0; col < n; col++)scanf("%d", &arr[row][col]);// 进行跳跃jump(i,j);// 输出flag == 1 ? printf("true\n") : printf("false\n");return 0;
}

算法复杂度:

算法分析课设(六)跳跃问题相关推荐

  1. 算法分析课设(十一)博物馆守卫问题、世界名画陈列馆问题(分支界限法)

    免责声明 不想打字了.. 题目 在某博物馆中摆放了非常重要的文物,为了节省人力,该博物馆专门购买了警卫机器人来看管这些文物.该博物馆的房间排列整齐,房间的大小相同.每个警卫机器人能够巡查的范围除本身所 ...

  2. 算法分析课设(四)采用分治法求树中任意两点之间距离小于K的点对及路径

    免责声明 本文仅为个人学习笔记,请谨慎参考,如有错误欢迎批评指正. 参考文章 第一篇文章主要看树的重心的部分 第二篇文章才是和本题完全一致 https://blog.csdn.net/a_foreve ...

  3. 算法分析课设(一)平面上有两个圆相交,求两个圆相交部分的面积

    写出算法的文字描述 第一步:输入两个圆的参数 x1. y1. r1. x2. y2. r2. 第二步:计算两圆的距离d,然后分以下四种情况判断: 1.相离或相切.若d>=(r1+r2),则 s= ...

  4. 计算机组成课设怎么做,计算机组成原理课设1

    计算机组成原理课设1 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 哈工大 年 秋 季学期班号姓名计算机组成原理 试 题题号一二三 ...

  5. 交通咨询系统(数据结构课设)

    目录 前言 选题题目 系统展示 写代码过程中出现的bug 我认为的存在的无关紧要的bug 源代码 参考文献 结语 前言 这学期做了一个数据结构的课设, 我的选题是交通咨询系统.硬性要求是组队完成,但是 ...

  6. 计算机组成原理文华学院,华中科技大学文华学院计算机组成原理课设.doc

    <华中科技大学文华学院计算机组成原理课设.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<华中科技大学文华学院计算机组成原理课设.doc>文档请在 ...

  7. 操作系统课设--系统调用

    山东大学操作系统课设lab6 实验六 系统调用(lab6) 实验目的 实验环境 实验思路 调试记录 实验六 系统调用(lab6) 实验目的 扩展现有的class AddrSpace的实现,使得Nach ...

  8. 数据库课设(足球联赛管理系统)

    一:前言 如果有关注博主的粉丝,可能会发现贴心杰又缺更好几天了,但是我是宠粉杰啊,怎么可能会忘了我的宝贝粉丝呢,只不过是临近期末,各种大作业课设如期而至,这几天我在写数据库课设,对于一个没有写过任何项 ...

  9. 操作系统课设——设计模拟一个SPOOLING假脱机输出程序

    广州大学操作系统课程设计报告 要求:书写课程设计报告,报告中应该包含如下内容: 一.课程设计题目及内容 课程设计题目:题目三: 设计模拟一个SPOOLING假脱机输出程序 (1) 系统设计要求:设计一 ...

最新文章

  1. jupyter安装与初探
  2. NAR:中科院微生物所发布全球模式微生物基因组测序计划进展
  3. Mac上安装hadoop
  4. 三维重建学习(3):张正友相机标定推导
  5. vb制作可输出函数的通用DLL---VB_DLL_Link用法
  6. 深度解密 Go math/rand
  7. git 提交文件_GIT不小心提交了大文件导致提交失败怎么办?
  8. openlayers3 根据经纬度 自动画框_Power Query获取上海市各区的经纬度
  9. 局域网怎么查看单位摄像头_一行代码,实现多平台文件查看传输!
  10. Ubuntu18.04 安装wine
  11. nginx强制刷新用户缓存_HTTP 缓存
  12. 全国分省企业CEO任期、CEO学历数据(5W+)
  13. 人工智能优缺点_人工智能的优缺点
  14. 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉!
  15. EPUB电子书阅读与制作
  16. 解决Google翻译不能使用的问题
  17. 恒指傻瓜操作系统(一)
  18. linux中的ps命令常用参数-个人
  19. 遥感图像处理基本操作——遥感图像辐射定标和大气校正(ENVI)
  20. CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)

热门文章

  1. 3,高速数据转换器的数据输出接口介绍
  2. 微软自家的Linux发行版开源了!
  3. 【PHP】PHP中使用Spreadsheet_Excel_Reader处理EXCEL日期问题?
  4. cdr文件用什么打开?(cdr文件打开方式汇总)
  5. 金立android在哪里设置密码,金立s5.5手机怎么设置锁屏密码 金立s5.5屏幕密码设置教程...
  6. DIY四周飞行器(小型无人机)附全部技术资料和设计文件
  7. 浙大软件工程硕士想转到java开发,龙叔觉得太可惜
  8. KBEngine(CBE)引擎研究 (二) C++ Python 混合调试
  9. IPhone 6的自适应布局
  10. 电商指纹浏览器价格如何,不同的价格对应什么功能