国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

力扣每日一題79:?jiǎn)卧~搜索

這篇具有很好參考價(jià)值的文章主要介紹了力扣每日一題79:?jiǎn)卧~搜索。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

題目描述:

給定一個(gè)?m x n?二維字符網(wǎng)格?board?和一個(gè)字符串單詞?word?。如果?word?存在于網(wǎng)格中,返回?true?;否則,返回?false?。

單詞必須按照字母順序,通過(guò)相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個(gè)單元格內(nèi)的字母不允許被重復(fù)使用。

示例 1:

力扣每日一題79:?jiǎn)卧~搜索,LeetCode每日一題,leetcode,c#,算法

輸入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
輸出:true

示例 2:

力扣每日一題79:?jiǎn)卧~搜索,LeetCode每日一題,leetcode,c#,算法

輸入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
輸出:true

示例 3:

力扣每日一題79:?jiǎn)卧~搜索,LeetCode每日一題,leetcode,c#,算法

輸入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
輸出:false

提示:

  • m == board.length
  • n = board[i].length
  • 1 <= m, n <= 6
  • 1 <= word.length <= 15
  • board?和?word?僅由大小寫(xiě)英文字母組成

進(jìn)階:你可以使用搜索剪枝的技術(shù)來(lái)優(yōu)化解決方案,使其在?board?更大的情況下可以更快解決問(wèn)題?

通過(guò)次數(shù)

462.9K

提交次數(shù)

997.8K

通過(guò)率

46.4%

思路和題解:

回溯和剪枝,設(shè)置一個(gè)函數(shù)check(i,j,k)判斷從網(wǎng)格的下標(biāo)[i][j]位置出發(fā),能不能搜索到單詞word[k]...word[wordSize-1](即word中下標(biāo)k開(kāi)始的后綴字符串)。判斷所有的check(i,j,0),只要有一個(gè)為真即為真,否則為假。

對(duì)于check函數(shù),如果board[i][j]!=word[k],return false;如果board[i][j]!=word[k]&&k==wordSize-1,return true;否則就判斷相鄰的四個(gè)位置能不能搜到word[k+1]...word[wordSize-1]。

要注意的是,check函數(shù)中包含了多次遞歸調(diào)用,如果是c++的話,參數(shù)寫(xiě)成傳引用,這樣比值傳遞運(yùn)行速度快,能過(guò)。值傳遞的話我試過(guò)過(guò)不了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-734407.html

i代碼:

class Solution {
public:
    //往右,左,下,上四個(gè)方向走時(shí)行下標(biāo)的變化和列下標(biāo)的變化
    int directions[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
    bool check(vector<vector<char>> &board,int m,int n,vector<vector<int>> &visited,int i,int j,string word,int wordSize,int k)
    {
        if(board[i][j]!=word[k])
            return false;
        else if(k==wordSize-1)
            return true;
        visited[i][j]=1;
        for(int direc=0;direc<4;direc++)
        {//依次往四個(gè)方向走
            int newi=i+directions[direc][0],newj=j+directions[direc][1];
            if(newi>=0&&newi<m&&newj>=0&&newj<n&&visited[newi][newj]==0)
            {
                bool flag=check(board,m,n,visited,newi,newj,word,wordSize,k+1);
                if(flag)
                {
                    return true;
                }
            }
        }
        visited[i][j]=0;
        return false;
    }
    bool exist(vector<vector<char>>& board, string word) {
        int m=board.size();
        int n=board[0].size();
        vector<vector<int>> visited(m,vector<int>(n,0));
        int wordSize=word.size();
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                bool flag=check(board,m,n,visited,i,j,word,wordSize,0);
                if(flag)
                    return true;
            }
        }
        return false;
    }
};

到了這里,關(guān)于力扣每日一題79:?jiǎn)卧~搜索的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 劍指 Offer 12. 矩陣中的路徑 / LeetCode 79. 單詞搜索(深度優(yōu)先搜索)

    劍指 Offer 12. 矩陣中的路徑 / LeetCode 79. 單詞搜索(深度優(yōu)先搜索)

    鏈接:劍指 Offer 12. 矩陣中的路徑;LeetCode 79. 單詞搜索 難度:中等 給定一個(gè) m x n 二維字符網(wǎng)格 board 和一個(gè)字符串單詞 word 。如果 word 存在于網(wǎng)格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過(guò)相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相

    2024年02月02日
    瀏覽(29)
  • 每日一題——LeetCode1455.檢查單詞是否為句中其他單詞的前綴

    每日一題——LeetCode1455.檢查單詞是否為句中其他單詞的前綴

    方法一 js函數(shù)slice() ?將字符串按空格符分割為單詞數(shù)組,記searchWord的長(zhǎng)度為n,分割每個(gè)單詞的前n位看是否和searchWord匹配 消耗時(shí)間和內(nèi)存情況: 方法二 雙指針: 來(lái)自leetcode官方題解 鏈接:1455.檢查單詞是否為句中其他單詞的前綴 使用 start 記錄單詞的起始,end記錄單詞結(jié)尾

    2024年02月19日
    瀏覽(24)
  • 力扣79. 單詞搜索

    思路: 定義函數(shù) check(i,j,k) 為網(wǎng)格 (i,j) 位置出發(fā)能夠搜索到單詞 word(k),如果搜索到返回 true,否則返回 false; 搜索規(guī)則: 【R1】如果 board[i][j] != word[k],直接返回 false; 【R2】如果當(dāng)前已經(jīng)訪問(wèn)到字符串的末尾,且對(duì)應(yīng)字符依然匹配,此時(shí)直接返回?true; 【R3】否則,遍歷

    2024年01月18日
    瀏覽(16)
  • (搜索) 劍指 Offer 12. 矩陣中的路徑 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 12. 矩陣中的路徑 ——【Leetcode每日一題】

    難度:中等 給定一個(gè) m * n 二維字符網(wǎng)格 board 和一個(gè)字符串單詞 word 。如果 word 存在于網(wǎng)格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過(guò)相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個(gè)單元格內(nèi)的字母不允許

    2024年02月12日
    瀏覽(28)
  • (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    難度:中等 輸入一個(gè)字符串,打印出該字符串中字符的所有排列。 你可以以任意順序返回這個(gè)字符串?dāng)?shù)組,但里面 不能有重復(fù)元素 。 示例: 輸入:s = “abc” 輸出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制 : 1 = s 的長(zhǎng)度 = 8 ??思路:回溯 可以直接 暴力窮舉 ,但

    2024年02月12日
    瀏覽(29)
  • (搜索) 劍指 Offer 13. 機(jī)器人的運(yùn)動(dòng)范圍 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 13. 機(jī)器人的運(yùn)動(dòng)范圍 ——【Leetcode每日一題】

    難度:中等 地上有一個(gè) m 行 n 列的方格,從坐標(biāo) [0,0] 到坐標(biāo) [m-1,n-1] 。一個(gè)機(jī)器人從坐標(biāo) [0, 0] 的格子開(kāi)始移動(dòng),它每次可以向左、右、上、下移動(dòng)一格(不能移動(dòng)到方格外),也不能進(jìn)入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于 k 的格子。例如,當(dāng) k 為18時(shí),機(jī)器人能夠進(jìn)入方格

    2024年02月11日
    瀏覽(19)
  • 【LeetCode】每日一題&最后一個(gè)單詞的長(zhǎng)度&投票法求解多數(shù)元素&異或操作符巧解只出現(xiàn)一次的數(shù)字&整數(shù)反轉(zhuǎn)

    ========================================================================= 個(gè)人主頁(yè)直達(dá): 小白不是程序媛 LeetCode系列專(zhuān)欄: LeetCode刷題掉發(fā)記 ========================================================================= 目錄 LeetCode 58.最后一個(gè)單詞的長(zhǎng)度 LeetCode169.多數(shù)元素 LeetCode 136.出現(xiàn)一次的數(shù)字 LeetCode 7.整數(shù)

    2024年02月08日
    瀏覽(25)
  • ( “樹(shù)” 之 BST) 109. 有序鏈表轉(zhuǎn)換二叉搜索樹(shù) ——【Leetcode每日一題】

    ( “樹(shù)” 之 BST) 109. 有序鏈表轉(zhuǎn)換二叉搜索樹(shù) ——【Leetcode每日一題】

    二叉查找樹(shù)(BST):根節(jié)點(diǎn)大于等于左子樹(shù)所有節(jié)點(diǎn),小于等于右子樹(shù)所有節(jié)點(diǎn)。 二叉查找樹(shù)中序遍歷有序。 給定一個(gè)單鏈表的頭節(jié)點(diǎn) head ,其中的元素 按升序排序 ,將其轉(zhuǎn)換為高度平衡的二叉搜索樹(shù)。 本題中,一個(gè)高度平衡二叉樹(shù)是指一個(gè)二叉樹(shù)每個(gè)節(jié)點(diǎn) 的左右兩個(gè)子

    2023年04月23日
    瀏覽(17)
  • 『力扣每日一題07』字符串最后一個(gè)單詞的長(zhǎng)度

    氣死我啦,今天這道題花了快一個(gè)小時(shí),我學(xué)完了答案的解法,放上去在線 OJ ,一直報(bào)錯(cuò),找來(lái)找去都找不到自己錯(cuò)在哪,明明跟答案一模一樣。后來(lái)還是學(xué)了另一種解法,才跑出來(lái)的(°????????o°????????) ? 后來(lái)我對(duì)比了兩種寫(xiě)法,復(fù)盤(pán)了一下,應(yīng)該是第一種解法

    2024年02月09日
    瀏覽(30)
  • 【LeetCode - 每日一題】449. 序列化和反序列化二叉搜索樹(shù)(23.09.04)

    給定一棵二叉搜索樹(shù),實(shí)現(xiàn)序列化和反序列化; 注意 val 范圍,因此 在序列化時(shí)需要插入分隔符分割每個(gè)節(jié)點(diǎn)的 val ; 要善于利用 二叉搜索樹(shù)的特性(中序遍歷 = 遞增排序) ; 前序遍歷 + 中序遍歷 可以重構(gòu)一棵樹(shù),又由于二叉搜索樹(shù)自帶中序遍歷,因此在序列化時(shí)保存前

    2024年02月10日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包