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

【LeetCode熱題100】【圖論】腐爛的橘子

這篇具有很好參考價值的文章主要介紹了【LeetCode熱題100】【圖論】腐爛的橘子。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目描述:994. 腐爛的橘子 - 力扣(LeetCode)

腐爛的橘子會污染周圍的橘子,要求多少輪擴(kuò)散才能把全部橘子污染,這就相當(dāng)于滴墨水入清水,會擴(kuò)散,其實就是廣度遍歷,看看遍歷多少層可以遍歷完可以遍歷的

先遍歷一次橘子,記錄下腐爛橘子的位置和新鮮橘子的數(shù)目,然后廣度遍歷腐爛橘子并向外擴(kuò)散污染新鮮橘子

注意向外擴(kuò)散時需要每次取位置,因為移動會改變位置,位置需要重置文章來源地址http://www.zghlxwxcb.cn/news/detail-856593.html

class Solution {
public:
    int rows, columns;
    vector<vector<int> > grid;

    bool isValid(int x, int y) {
        return x >= 0 && y >= 0 && x < rows && y < columns;
    }

    int orangesRotting(vector<vector<int> > &grid) {
        rows = grid.size();
        columns = grid[0].size();
        this->grid = move(grid);
        int ans = 0, fresh = 0;
        queue<pair<int, int> > pullte;
        for (int i = 0; i < rows; ++i)
            for (int j = 0; j < columns; ++j)
                if (this->grid[i][j] == 1)
                    ++fresh;
                else if (this->grid[i][j] == 2)
                    pullte.emplace(i, j);
        int move[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
        while (fresh > 0 && !pullte.empty()) {
            int scale = pullte.size();
            while (--scale >= 0) {
                for (int i = 0; i < 4; ++i) {
                    auto [x,y] = pullte.front();
                    x += move[i][0];
                    y += move[i][1];
                    if (isValid(x, y) && this->grid[x][y] == 1) {
                        this->grid[x][y] = 2;
                        pullte.emplace(x, y);
                        --fresh;
                    }
                }
                pullte.pop();
            }
            ++ans;
        }
        if (fresh > 0)
            return -1;
        return ans;
    }
};

到了這里,關(guān)于【LeetCode熱題100】【圖論】腐爛的橘子的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【LeetCode 熱題 100】圖論 專題(bfs,拓?fù)渑判?,Trie樹 字典樹)

    from: https://leetcode.cn/studyplan/top-100-liked/ bfs 具有 邊權(quán)為1 的最短路性質(zhì) 拓?fù)渑判颍攵?Trie樹, 高效存儲 字符串【見鬼,不知道為什么寫錯,需要掌握熟練度】 dfs 寫法,比較簡潔 bfs 寫法,有最短路性質(zhì) bfs 具有 邊權(quán)為1 的最短路性質(zhì) 拓?fù)渑判?模板題 數(shù)組寫法,簡潔,需

    2024年02月13日
    瀏覽(23)
  • 【LeetCode 熱題 100】矩陣 專題(大多原地算法,需要一定思維)

    解題思路 在 代碼注釋中!

    2024年02月15日
    瀏覽(111)
  • 螺旋矩陣 LeetCode熱題100

    給你一個 m 行 n 列的矩陣 matrix ,請按照 順時針螺旋順序 ,返回矩陣中的所有元素。 模擬,朝一個方向走,走過的點標(biāo)記一下,直到碰到邊界或碰到已經(jīng)走過的路,換個方向。右-下,下-左,左-上,上-右。直到走完所有點。

    2024年02月14日
    瀏覽(28)
  • LeetCode 熱題100——單調(diào)棧

    LeetCode 熱題100——單調(diào)棧

    ? ??個人主頁: 日刷百題 系列專欄 : 〖C語言小游戲〗 〖Linux〗 〖數(shù)據(jù)結(jié)構(gòu)〗 ? 〖C語言〗 ?? 歡迎各位 → 點贊 ??+ 收藏 ??+ 留言 ??? ? ? 遞增單調(diào)棧:棧中元素從棧底到棧頂依次增大 遞減單調(diào)棧:棧中元素從棧底到棧頂依次減小 在學(xué)習(xí)完樸素的數(shù)據(jù)結(jié)構(gòu)棧之后,

    2024年02月04日
    瀏覽(30)
  • Leetcode熱題100

    暴力:{i,j}直接返回vectorint 哈希表: map: 紅黑樹 具有自動排序的功能,是非嚴(yán)格的二叉搜索樹。map內(nèi)部的所有元素都是有序的,使用中序遍歷可將鍵值按照從小到大遍歷出來。插入的時間是O(logn),查詢時間是O(logn)??梢灾С炙蓄愋偷逆I值對 unordered_map: 哈希表(也叫散列表

    2024年02月14日
    瀏覽(21)
  • LeetCode 熱題 HOT 100

    LeetCode 熱題 HOT 100

    重點是當(dāng)有一個鏈表為空了不單獨處理,按節(jié)點為0處理。 滑動窗口! 首先要判斷slow需不需要更新,怎么判斷?slow = max(umap[s[fast]], slow);什么意思,就是說:**umap[s[fast]]的意義是,為了在slow和fast之間不出現(xiàn)重復(fù)字符,slow能處于的最左位置。**如圖,當(dāng)j第一次到d,將umap[s[j

    2024年02月07日
    瀏覽(22)
  • LeetCode熱題100——鏈表

    LeetCode熱題100——鏈表

    給你兩個單鏈表的頭節(jié)點 headA 和 headB ,請你找出并返回兩個單鏈表相交的起始節(jié)點。如果兩個鏈表不存在相交節(jié)點,返回 null 。 給你單鏈表的頭節(jié)點 head ,請你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表。 給你一個單鏈表的頭節(jié)點 head ,請你判斷該鏈表是否為回文鏈表。如果是,返回

    2024年02月05日
    瀏覽(22)
  • LeetCode 熱題 100 | 哈希

    LeetCode 熱題 100 | 哈希

    目錄 1? 基礎(chǔ)知識 1.1? 定義哈希表 1.2? 遍歷哈希表 1.3? 查找某一個鍵 1.4? 插入鍵值對 1.5? 獲取鍵值對的值 1.6? 搜索功能 2? 三道題 2.1? 1. 兩數(shù)之和 2.2? 49. 字母異位詞分組 2.3? 128. 最長連續(xù)序列 菜鳥做題第一周,語言是 C++ 1? 基礎(chǔ)知識 1.1? 定義哈希表 unordered_map 用于定義

    2024年01月18日
    瀏覽(46)
  • LeetCode熱題 100整理

    LeetCode熱題 100整理

    35. 搜索插入位置 給定一個排序數(shù)組和一個目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會被按順序插入的位置。 請必須使用時間復(fù)雜度為 O(log n) 的算法。 示例 1: 輸入: nums = [1,3,5,6], target = 5 輸出: 2 示例?2: 輸入: nums = [1,3,5,6], target

    2024年02月13日
    瀏覽(21)
  • LeetCode 熱題 100 | 鏈表(上)

    LeetCode 熱題 100 | 鏈表(上)

    目錄 1? 基礎(chǔ)知識 1.1? 空指針 1.2? 結(jié)構(gòu)體 1.3? 指針訪問 1.4? 三目運(yùn)算符 2? 160. 相交鏈表 3? 206. 反轉(zhuǎn)鏈表 4? 234. 回文鏈表 菜鳥做題第三周,語言是 C++ 1? 基礎(chǔ)知識 1.1? 空指針 使用 nullptr 來判斷是否為空指針: “NULL 在 C++ 中就是 0,這是因為在 C++ 中 void* 類型是不允許隱式

    2024年02月19日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包