在二维数组中查找指定的序列是否存在

本文介绍了一种使用递归方法在二维数组中查找指定序列的方法。题目要求从给定的二维字符数组中找到一条路径,使得路径上的字符顺序与目标序列相同,且每个字符只能经过一次。通过遍历二维数组并建立字符与位置的映射,然后递归地检查字符序列中的下一个字符是否在相邻位置,实现了路径查找。递归解法虽然直观但效率较低,因此提出了非递归的栈模拟解法,提高了算法性能。
摘要由CSDN通过智能技术生成
题目描述:
URL : https://oj.leetcode.com/problems/word-search/

Given a 2D board and a word, find if the word exists in the grid.

The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.

For example,
Given board =

[
  ["ABCE"],
  ["SFCS"],
  ["ADEE"]
]
word = "ABCCED", -> returns true,
word = "SEE", -> returns true,
word = "ABCB", -> returns false.

这个题目的输入是一个二维的字符数组,假设为m*n,还给定一个字符序列(字符串),让你判断能否在这个二维数组中找出一个路径(只能横着走或者竖着走)和这个字符序列相同。并且保证每一个点最多只能经过一次。

拿到这道题我就觉得,我首先遍历一下这个二维数组,保存每一个字符和这个字符出现的所有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值