蓝桥杯Java 振兴中华 (深度优先遍历)

文章目录

  • 题目
  • 来源及难度
  • 解题思路
  • 代码


题目

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明参加了学校的趣味运动会,其中的一个项目是:跳格子。

地上画着一些格子,每个格子里写一个字,如下所示:

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。

要求跳过的路线刚好构成“从我做起振兴中华”这句话。

请你帮助小明算一算他一共有多少种可能的跳跃路线呢?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

来源及难度

难度: 简单 ,2013年省赛填空题


解题思路

利用深度优先遍历解决此问题,构成“从我做起振兴中华”,八个字,一开始会占到“从”上,最后到达“华”上,这两个位置是确定的。这张图片,中间的字都是上和左相同,下和右相同,拿“起”字为例,意味着只能向下或者向右,在到达第四行时,无法向下,只有向右的一条路,数量加1就可以;到达第五列同理,只有向下一条路,数量加1然后返回。


代码

package DFS;

public class Dfs {

	public static void main(String[] args) {
		System.out.println(Dfs(0,0));
	}
	static int Dfs(int i,int j) {
		if (i==3||j==4) {
			return 1;
		}
		return Dfs(i+1, j)+Dfs(i, j+1);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值