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

2023-5-26 LeetCode每日一題(二進(jìn)制矩陣中的最短路徑)

這篇具有很好參考價(jià)值的文章主要介紹了2023-5-26 LeetCode每日一題(二進(jìn)制矩陣中的最短路徑)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2023-05-29每日一題

一、題目編號

1091. 二進(jìn)制矩陣中的最短路徑

二、題目鏈接

點(diǎn)擊跳轉(zhuǎn)到題目位置

三、題目描述

給你一個 n x n 的二進(jìn)制矩陣 grid 中,返回矩陣中最短 暢通路徑 的長度。如果不存在這樣的路徑,返回 -1 。

二進(jìn)制矩陣中的 暢通路徑 是一條從 左上角 單元格(即,(0, 0))到 右下角 單元格(即,(n - 1, n - 1))的路徑,該路徑同時滿足下述要求:

  • 路徑途經(jīng)的所有單元格都的值都是 0 。
  • 路徑中所有相鄰的單元格應(yīng)當(dāng)在 8 個方向之一 上連通(即,相鄰兩單元之間彼此不同且共享一條邊或者一個角)。

暢通路徑的長度 是該路徑途經(jīng)的單元格總數(shù)。

四、解題代碼

class Solution {
    int dir[8][2] = {
        {-1, 0},
        {1, 0},
        {0, 1},
        {0, -1},
        {1, -1},
        {1, 1},
        {-1, -1},
        {-1, 1},
    };

public:
    int shortestPathBinaryMatrix(vector<vector<int>>& grid) {
        queue<int> q;
        if(grid[0][0] == 1){
            return -1;
        }
        q.push(0 * 110 + 0);
        int m = grid.size();
        int n = grid[0].size();
        if(m == 1 && n == 1){
            if(grid[0][0] == 0){
                return 1;
            }
        }
        int hash[12000];
        memset(hash, 0, sizeof(hash));
        int cnt = 0;
        while(!q.empty()){
            ++cnt;
            int len = q.size();
            for(int i = 0; i < len; ++i){
                int node = q.front();
                q.pop();
                int x = node / 110;
                int y = node % 110;
                for(int j = 0; j < 8; ++j){
                    int next_x = x + dir[j][0];
                    int next_y = y + dir[j][1];
                    if(next_x < 0 || next_x >= m || next_y < 0 || next_y >= n || hash[next_x * 110 + next_y]){
                        continue;
                    }
                    if(grid[next_x][next_y] == 1){
                        if(next_x == m-1 && next_y == n-1){
                            return -1;
                        }
                        continue;
                    }
                    if(next_x == m-1 && next_y == n-1){
                        return cnt + 1;
                    }
                    hash[next_x * 110 + next_y] = 1;
                    q.push(next_x * 110 + next_y);
                }
            }
        }
    return -1;
    }
};

五、解題思路

(1) 該問題有8個方向,那么這到題目就要利用到平面的8方向遍歷,這用一維數(shù)組控制也可以,但是習(xí)慣上用二維數(shù)組來控制。

(2) 使用廣度優(yōu)先搜索來進(jìn)行遍歷,從(0,0)點(diǎn)開始遍歷。利用隊(duì)列+哈希的形式來進(jìn)行廣搜。首先得判斷,(0,0)點(diǎn)是否為0和是否只有(0,0)點(diǎn)并且為0。

(3) 廣搜在平面的壓入隊(duì)列條件為不越界,哈希未標(biāo)記,并且為0,并且可以通過提前判斷是否到(m-1, n-1)來結(jié)束廣度優(yōu)先搜索。文章來源地址http://www.zghlxwxcb.cn/news/detail-461053.html

到了這里,關(guān)于2023-5-26 LeetCode每日一題(二進(jìn)制矩陣中的最短路徑)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • ( 位運(yùn)算 ) 190. 顛倒二進(jìn)制位 ——【Leetcode每日一題】

    ( 位運(yùn)算 ) 190. 顛倒二進(jìn)制位 ——【Leetcode每日一題】

    難度:簡單 顛倒給定的 32 位無符號整數(shù)的二進(jìn)制位。 提示: 請注意,在某些語言(如 Java )中,沒有無符號整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號整數(shù)類型,并且不應(yīng)影響您的實(shí)現(xiàn),因?yàn)闊o論整數(shù)是有符號的還是無符號的,其內(nèi)部的二進(jìn)制表示形式都是

    2024年02月03日
    瀏覽(93)
  • (位運(yùn)算) 1356. 根據(jù)數(shù)字二進(jìn)制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    (位運(yùn)算) 1356. 根據(jù)數(shù)字二進(jìn)制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    難度:簡單 給你一個整數(shù)數(shù)組 arr 。請你將數(shù)組中的元素按照其二進(jìn)制表示中數(shù)字 1 的數(shù)目升序排序。 如果存在多個數(shù)字二進(jìn)制中 1 的數(shù)目相同,則必須將它們按照數(shù)值大小升序排列。 請你返回排序后的數(shù)組。 示例 1: 輸入 :arr = [0,1,2,3,4,5,6,7,8] 輸出 :[0,1,2,4,8,3,5,6,7] 解釋

    2024年02月12日
    瀏覽(89)
  • 【每日一題Day218】LC1091 二進(jìn)制矩陣中的最短路徑 | BFS

    你駕駛出租車行駛在一條有 n 個地點(diǎn)的路上。這 n 個地點(diǎn)從近到遠(yuǎn)編號為 1 到 n ,你想要從 1 開到 n ,通過接乘客訂單盈利。你只能沿著編號遞增的方向前進(jìn),不能改變方向。 乘客信息用一個下標(biāo)從 0 開始的二維數(shù)組 rides 表示,其中 rides[i] = [starti, endi, tipi] 表示第 i 位乘客

    2024年02月08日
    瀏覽(87)
  • C語言每日一題之整數(shù)求二進(jìn)制1的個數(shù)

    C語言每日一題之整數(shù)求二進(jìn)制1的個數(shù)

    今天分享一道題目,用三種方法來求解 二進(jìn)制1的個數(shù) 方法1 我們的十進(jìn)制除10和取余數(shù)就可以得到我們每一位的數(shù)字,那我們的二進(jìn)制也可 以 這是一種方法,另外一種就是我們可以用移位操作符來算 這個方法是不是也是特別妙呢,當(dāng)然還有更妙的方法,請看?。?! 相信看

    2024年02月15日
    瀏覽(90)
  • C語言每日一題(5):求兩個數(shù)二進(jìn)制中不同位的個數(shù)

    C語言每日一題(5):求兩個數(shù)二進(jìn)制中不同位的個數(shù)

    文章主題:求兩個數(shù)二進(jìn)制中不同位的個數(shù)?? 所屬專欄: C語言每日一題 ?? 作者簡介:每天不定時更新C語言的小白一枚,記錄分享自己每天的所思所想???? 個人主頁: [?]的個人主頁 ???? 最近剛學(xué)位操作符以及二進(jìn)制碼的相關(guān)知識,于是想出了求兩個數(shù)二進(jìn)制中不同

    2024年02月07日
    瀏覽(849)
  • LeetCode 1253. 重構(gòu) 2 行二進(jìn)制矩陣

    力扣題目鏈接:https://leetcode.cn/problems/reconstruct-a-2-row-binary-matrix/ 給你一個? 2 ?行 n 列的二進(jìn)制數(shù)組: 矩陣是一個二進(jìn)制矩陣,這意味著矩陣中的每個元素不是? 0 ?就是? 1 。 第 0 行的元素之和為? upper 。 第 1 行的元素之和為 lower 。 第 i 列(從 0 開始編號)的元素之和為

    2024年02月11日
    瀏覽(26)
  • ?LeetCode解法匯總253. 重構(gòu) 2 行二進(jìn)制矩陣

    https://github.com/September26/java-algorithms 給你一個? 2 ?行? n ?列的二進(jìn)制數(shù)組: 矩陣是一個二進(jìn)制矩陣,這意味著矩陣中的每個元素不是? 0 ?就是? 1 。 第? 0 ?行的元素之和為? upper 。 第? 1 ?行的元素之和為? lower 。 第? i ?列(從? 0 ?開始編號)的元素之和為? colsum[i] ,

    2024年02月11日
    瀏覽(22)
  • java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode1091. 二進(jìn)制矩陣中的最短路徑

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode1091. 二進(jìn)制矩陣中的最短路徑

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題目錄(劍指Offer、LeetCode、ACM)-----主目錄-----持續(xù)更新(進(jìn)不去說明我沒寫完): https://blog.csdn.net/grd_java/article/details/123063846 雙分裂蛇:是求二維表中從起點(diǎn)到終點(diǎn)的經(jīng)典思路(也是求無權(quán)圖的最短路徑問題的經(jīng)典解法)。創(chuàng)建兩條分裂蛇,分別從起點(diǎn)和

    2024年04月26日
    瀏覽(97)
  • 二進(jìn)制安裝1.26版本k8s(docker)

    二進(jìn)制安裝1.26版本k8s(docker)

    v1.24.0 - v1.26.0 之前支持docker,但是需要額外安裝cri-docker來充當(dāng)墊片 由于工作原因作者會同時使用Ubuntu和CentOS,因此本次將兩個系統(tǒng)的K8S安裝一起記錄一下(與CentOS7.9、Ubuntu2004驗(yàn)證) 證書采用cfssl工具制作 使用二進(jìn)制方式部署3主1從高可用集群 etcd采用二進(jìn)制部署,復(fù)用3個管理

    2024年02月10日
    瀏覽(36)
  • openEuler 22.09環(huán)境二進(jìn)制安裝Kubernetes(k8s) v1.26

    openEuler 22.09環(huán)境二進(jìn)制安裝Kubernetes(k8s) v1.26

    本文檔描述了如何在openEuler 22.09上以二進(jìn)制模式部署高可用Kubernetes集群(適用k8s v1.26版本)。 注意:本文檔中的所有操作均使用root權(quán)限執(zhí)行。 1、主機(jī)清單 本文檔采用5臺華為ECS進(jìn)行部署,基本情況如下表所示。 主機(jī)名稱 IP地址 說明 軟件 k8s-master01 192.168.218.100 master節(jié)點(diǎn) k

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包