【剑指offer】面试题12:矩阵中的路径(Java)

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。

[["a","b","c","e"],
["s","f","c","s"],
["a","d","e","e"]]

但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入这个格子。

 

示例 1:

输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
输出:true
示例 2:

输入:board = [["a","b"],["c","d"]], word = "abcd"
输出:false
提示:

1 <= board.length <= 200
1 <= board[i].length <= 200

代码:

class Solution {

    public boolean exist(char[][] board, String word) {

         if (board == null || board[0] == null || board.length == 0 || board[0].length == 0 || word == null || word.equals("")) {

            return false;

        }

        boolean visited[][] = new boolean[board.length][board[0].length];

        for(int i=0;i<board.length;i++)

        {

            for(int j=0;j<board[0].length;j++)

            {

                if(board[i][j]==word.charAt(0))

                {

                    if(find(board,word,0,i,j,visited)==true)

                {

                    return true;

                }

                }

                

            }

        }

       

        return false;

    }

    public boolean find(char[][] board,String word,int index,int i,int j, boolean visited[][])

    {

        

        if(index==word.length())

        {

            return true;

        }

        if (i < 0 || j < 0 || i == board.length || j == board[0].length || visited[i][j] || board[i][j] != word.charAt(index)) {

            return false;

        }

 

            visited[i][j] = true;

            boolean x =  find(board,word,index+1,i-1,j,visited)||find(board,word,index+1,i,j-1,visited)||find(board,word,index+1,i+1,j,visited)||find(board,word,index+1,i,j+1,visited);

             visited[i][j] = false;

            return x;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021年斯坦福AI指数报告重磅出炉!中国AI期刊影响力首超美国,视频处理是新风口...

来源&#xff1a;AI科技评论作者&#xff1a;AI科技评论CV在快速工业化&#xff0c;大公司正扩大计算鸿沟。就在刚刚&#xff0c;斯坦福大学正式发布《2021年人工智能指数报告》&#xff08;“Artificial Intelligence Index Report 2021”&#xff09;&#xff01;报告链接&am…

16重新安装HA0.63

2018-02-24 14:17:46 https://home-assistant.io/docs/installation/raspberry-pi/首先安装2017-11-29-raspbian-stretch树莓派镜像到SD卡&#xff0c;步骤如下&#xff1a;下载镜像文件&#xff0c;转到网页https://www.raspberrypi.org/downloads/raspbian/&#xff0c;下载“…

【剑指 offer】面试题13:机器人的运动范围(Java)

地上有一个m行n列的方格&#xff0c;从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动&#xff0c;它每次可以向左、右、上、下移动一格&#xff08;不能移动到方格外&#xff09;&#xff0c;也不能进入行坐标和列坐标的数位之和大于k的格子。例如&am…

超人类AI的幻想与思考:自下而上构建的自我迭代意识系统

来源&#xff1a;人民网或许很多人都幻想过&#xff0c;如果有一天&#xff0c;人工智能超越了人类的智力水平&#xff0c;世界将会发声怎样天翻地覆的变化。而在这个看似遥远&#xff0c;又似乎近在咫尺的幻想实现之前&#xff0c;不放让我们来深入探讨一下&#xff0c; 怎样才…

【剑指offer】面试题14- I:剪绳子(Java)

给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少&#xff1f;例如&#xff0c;当绳子的…

elk安装

官网下载最新的rpm包安装。 http://blog.51cto.com/liqingbiao/1928653 es安装head 先安装node wget https://nodejs.org/dist/v0.10.48/node-v0.10.48.tar.gz 加压&#xff0c;make&#xff0c;make install node --version git clone https://github.com/mobz/elasticsearch…

2021城市大脑与智能产业趋势简报第五期

《城市大脑与智能产业趋势简报》是“城市大脑全球标准研究组”推荐的一周内城市大脑和智能产业领域值得关注的重要科技进展、新闻动态、专家观点和专业知识。本次周报&#xff08;2021.2.24-2021.3.3&#xff09;共推荐99条重要信息&#xff08;点击链接地址可以直接打开阅读&a…

【剑指offer】面试题15:二进制中1的个数(Java)

请实现一个函数&#xff0c;输入一个整数&#xff0c;输出该数二进制表示中 1 的个数。例如&#xff0c;把 9 表示成二进制是 1001&#xff0c;有 2 位是 1。因此&#xff0c;如果输入 9&#xff0c;则该函数输出 2。 示例 1&#xff1a; 输入&#xff1a;000000000000000000…

物理理论发展放缓?这是一种认知误判

来源&#xff1a;光明日报作者&#xff1a;李侠&#xff0c;系上海交通大学科学史与科学文化研究院院长、教授物理基础理论的发展是否已经停滞。这是一个经常被人们提起但其实很复杂的问题。基于科学哲学的基本理论&#xff0c;笔者认为&#xff1a;以物理学为代表的基础理论仍…

【剑指offer】面试题16:数值的整数次方(Java)

实现函数double Power(double base, int exponent)&#xff0c;求base的exponent次方。不得使用库函数&#xff0c;同时不需要考虑大数问题。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000…

php blog to explore

https://www.zachstronaut.com/posts/2009/02/09/careful-with-php-empty.html转载于:https://www.cnblogs.com/qinqiu/p/9606348.html

【剑指offer】面试题18:删除链表的节点(Java)

给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&#xff1a;此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点&#xff0c;那么在调用…

java容器02--ArrayList源码分析

1.1 ArrayList 1. 概览 实现了 RandomAccess 接口&#xff0c;因此支持随机访问。这是理所当然的&#xff0c;因为 ArrayList 是基于数组实现的。 public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.…

斯坦福连续发了四年的AI报告,今年讲了什么?

来源&#xff1a;机器之心报道编辑&#xff1a;蛋酱、魔王、陈萍由斯坦福大学发起的人工智能指数&#xff08;AI Index&#xff09;是一个追踪 AI 动态和进展的非营利性项目&#xff0c;旨在全面研究 AI 行业状况&#xff0c;旨在促进基于数据的 AI 广泛交流和有效对话。刚刚&a…

【剑指offer】面试题19:正则表达式匹配(Java)

请实现一个函数用来匹配包含. 和*的正则表达式。模式中的字符.表示任意一个字符&#xff0c;而*表示它前面的字符可以出现任意次&#xff08;含0次&#xff09;。在本题中&#xff0c;匹配是指字符串的所有字符匹配整个模式。例如&#xff0c;字符串"aaa"与模式"…

面试-重写基础功能函数

重写基础函数 1. 字符串拷&#xff1a;strcpy() 函数strcpy的原型是char* strcpy(char* des , const char* src)&#xff0c;des 和 src 所指内存区域不可以重叠且 des 必须有足够的空间来容纳 src 的字符串。 char* strcpy( char* dst, const char* src ) {assert( NULL ! ds…

第一次,人类在人工神经网络中发现了“真”神经元

来源&#xff1a;学术头条本文经授权转载自机器之心&#xff08;almosthuman2014&#xff09;OpenAI 的研究者们在人工神经网络 CLIP 上发现了「真」神经元&#xff0c;这种机制解释了 AI 模型对令人惊讶的视觉呈现进行分类时&#xff0c;为何拥有如此的准确性。研究人员表示&a…

【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面(Java)

输入一个整数数组&#xff0c;实现一个函数来调整该数组中数字的顺序&#xff0c;使得所有奇数位于数组的前半部分&#xff0c;所有偶数位于数组的后半部分。 示例&#xff1a; 输入&#xff1a;nums [1,2,3,4] 输出&#xff1a;[1,3,2,4] 注&#xff1a;[3,1,2,4] 也是正确…

#35 string(缩点+动态规划)

容易发现有了交换相邻字符的操作后&#xff0c;只要字符串所含有的字符种类和数量相同其就是等价的。这样的状态只有n^3级别&#xff0c;将其抽象成点子串变换抽象成边后就是求最长路径了&#xff0c;缩点dp解决。 码量巨大&#xff0c;不是很明白要怎样才能用3k写完。 #includ…

AI破解脑电波,准确率超80%!高度还原你眼中最美的ta

本文转自公众号&#xff1a;新智元一千个人眼中有一千个哈姆雷特。由于主观差异&#xff0c;人类的审美有千万种。对于个人偏好的观察&#xff0c;人类尚且还需要思考揣摩&#xff0c;何况是机器&#xff0c;如何做到呢&#xff1f;但最近赫尔辛基大学和哥本哈根大学的一个研究…