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

Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器

這篇具有很好參考價(jià)值的文章主要介紹了Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

原題

這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在?m * n?的整數(shù)矩陣網(wǎng)格?grid?中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。

如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。

請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他服務(wù)器進(jìn)行通信的服務(wù)器的數(shù)量。

示例 1:

Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器,算法,LeetCode,C++

輸入:grid = [[1,0],[0,1]]
輸出:0
解釋:沒(méi)有一臺(tái)服務(wù)器能與其他服務(wù)器進(jìn)行通信。

示例 2:

Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器,算法,LeetCode,C++

輸入:grid = [[1,0],[1,1]]
輸出:3
解釋:所有這些服務(wù)器都至少可以與一臺(tái)別的服務(wù)器進(jìn)行通信。

示例 3:

Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器,算法,LeetCode,C++

輸入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]]
輸出:4
解釋:第一行的兩臺(tái)服務(wù)器互相通信,第三列的兩臺(tái)服務(wù)器互相通信,但右下角的服務(wù)器無(wú)法與其他服務(wù)器通信。

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m <= 250
  • 1 <= n <= 250
  • grid[i][j] == 0 or 1

來(lái)源:力扣(LeetCode)官網(wǎng) - 全球極客摯愛(ài)的技術(shù)成長(zhǎng)平臺(tái)

解題思路

我們把題目讀懂之后,就會(huì)發(fā)現(xiàn)題目要求我們統(tǒng)計(jì)每行每列中1大于等于2個(gè)行列上1的個(gè)數(shù)。一個(gè)簡(jiǎn)單的解題方法就是統(tǒng)計(jì)每行每列中1的個(gè)數(shù),然后遍歷每個(gè)值是1的點(diǎn),看看所在行列上1的個(gè)數(shù)是否大于等于2。于是我們得到官方題解的實(shí)現(xiàn):

class Solution {
public:
    int countServers(vector<vector<int>>& grid) {
        int m = grid.size(), n = grid[0].size();
        unordered_map<int, int> rows, cols;
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                if (grid[i][j] == 1) {
                    ++rows[i];
                    ++cols[j];
                }
            }
        }
        int ans = 0;
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                if (grid[i][j] == 1 && (rows[i] > 1 || cols[j] > 1)) {
                    ++ans;
                }
            }
        }
        return ans;
    }
};

作者:力扣官方題解
鏈接:https://leetcode.cn/problems/count-servers-that-communicate/solutions/101819/tong-ji-can-yu-tong-xin-de-fu-wu-qi-by-leetcode-so/
來(lái)源:力扣(LeetCode)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

優(yōu)化題解

官方題解需要遍歷兩次全部的點(diǎn),有沒(méi)有優(yōu)化的空間呢?其實(shí)我們遍歷每行的時(shí)候,如果該行1的個(gè)數(shù)大于等于2,那么全都是符合結(jié)果的點(diǎn)。如果剛好等于1,那么需要后續(xù)判斷這一列上1的點(diǎn)的個(gè)數(shù)是否大于等于2。因此我們可以先收集起來(lái),最后判斷,這樣我們第二輪的時(shí)間復(fù)雜度可以降低到O(n)?;谶@個(gè)思路,我們的優(yōu)化版本:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-686488.html

class Solution {
public:
    int countServers(vector<vector<int>>& grid) {
        int m = grid.size();
        int n = grid[0].size();
        unordered_map<int, int> cols;
        int ans = 0,col = 0, rows=0;
        vector<int> srows;
        for(int i = 0; i < m;i++){
            rows=0;
            for(int j =0;j< n;j++){
                if(grid[i][j] == 1){
                    ++rows;
                    ++cols[j];
                    col = j;
                }
            }
            if(rows >= 2){
                ans+=rows;
            }else if(rows == 1){
                srows.emplace_back(col);
            }
        }
        for(int &j:srows){
            if(cols[j]>=2){
                ++ans;
            }
        }
        return ans;
    }
};

到了這里,關(guān)于Leetcode每日一題:1267. 統(tǒng)計(jì)參與通信的服務(wù)器的文章就介紹完了。如果您還想了解更多內(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)文章

  • LeetCode 1267. 統(tǒng)計(jì)參與通信的服務(wù)器

    力扣題目鏈接:https://leetcode.cn/problems/count-servers-that-communicate/ 這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在? m * n ?的整數(shù)矩陣網(wǎng)格? grid ?中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。 如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。 請(qǐng)你統(tǒng)計(jì)并

    2024年02月11日
    瀏覽(27)
  • ?LeetCode解法匯總1267. 統(tǒng)計(jì)參與通信的服務(wù)器

    ?LeetCode解法匯總1267. 統(tǒng)計(jì)參與通信的服務(wù)器

    https://github.com/September26/java-algorithms 這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在? m * n ?的整數(shù)矩陣網(wǎng)格? grid ?中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。 如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。 請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他

    2024年02月11日
    瀏覽(22)
  • 【力扣每日一題】2023.8.24 統(tǒng)計(jì)參與通信的服務(wù)器

    【力扣每日一題】2023.8.24 統(tǒng)計(jì)參與通信的服務(wù)器

    目錄 題目: 示例: 分析: 代碼: 題目顧名思義,要我們統(tǒng)計(jì)參與通信的服務(wù)器,給我們一個(gè)二維矩陣,元素為1的位置則表示是一臺(tái)服務(wù)器。 判斷一臺(tái)服務(wù)器是否參與通信的條件是同一列或是同一行中也有服務(wù)器。 那么我們只需要遍歷整個(gè)矩陣,遇到服務(wù)器的時(shí)候我們進(jìn)

    2024年02月11日
    瀏覽(18)
  • 【1267. 統(tǒng)計(jì)參與通信的服務(wù)器】

    【1267. 統(tǒng)計(jì)參與通信的服務(wù)器】

    來(lái)源:力扣(LeetCode) 描述: 這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在 m * n 的整數(shù)矩陣網(wǎng)格 grid 中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。 如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。 請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他服務(wù)器進(jìn)行

    2024年02月11日
    瀏覽(23)
  • LC-1267. 統(tǒng)計(jì)參與通信的服務(wù)器(枚舉 + 計(jì)數(shù))

    LC-1267. 統(tǒng)計(jì)參與通信的服務(wù)器(枚舉 + 計(jì)數(shù))

    中等 這里有一幅服務(wù)器分布圖,服務(wù)器的位置標(biāo)識(shí)在 m * n 的整數(shù)矩陣網(wǎng)格 grid 中,1 表示單元格上有服務(wù)器,0 表示沒(méi)有。 如果兩臺(tái)服務(wù)器位于同一行或者同一列,我們就認(rèn)為它們之間可以進(jìn)行通信。 請(qǐng)你統(tǒng)計(jì)并返回能夠與至少一臺(tái)其他服務(wù)器進(jìn)行通信的服務(wù)器的數(shù)量。 示

    2024年02月11日
    瀏覽(17)
  • 2023-08-23 LeetCode每日一題(統(tǒng)計(jì)點(diǎn)對(duì)的數(shù)目)

    2023-08-23 LeetCode每日一題(統(tǒng)計(jì)點(diǎn)對(duì)的數(shù)目)

    點(diǎn)擊跳轉(zhuǎn)到題目位置 給你一個(gè)無(wú)向圖,無(wú)向圖由整數(shù) n ,表示圖中節(jié)點(diǎn)的數(shù)目,和 edges 組成,其中 edges[i] = [u i , v i ] 表示 u i 和 v i 之間有一條無(wú)向邊。同時(shí)給你一個(gè)代表查詢的整數(shù)數(shù)組 queries 。 第 j 個(gè)查詢的答案是滿足如下條件的點(diǎn)對(duì) (a, b) 的數(shù)目: a b cnt 是與 a 或者 b

    2024年02月11日
    瀏覽(21)
  • Leetcode每日一題:1448. 統(tǒng)計(jì)二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目

    Leetcode每日一題:1448. 統(tǒng)計(jì)二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目

    給你一棵根為? root ?的二叉樹(shù),請(qǐng)你返回二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目。 「好節(jié)點(diǎn)」X 定義為:從根到該節(jié)點(diǎn) X 所經(jīng)過(guò)的節(jié)點(diǎn)中,沒(méi)有任何節(jié)點(diǎn)的值大于 X 的值。 示例 1: 示例 2: 示例 3: 提示: 二叉樹(shù)中節(jié)點(diǎn)數(shù)目范圍是? [1, 10^5] ?。 每個(gè)節(jié)點(diǎn)權(quán)值的范圍是? [-10^4, 10^4] ?。 顯然

    2024年02月11日
    瀏覽(23)
  • 每日一題:leetcode 1448 統(tǒng)計(jì)二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目

    每日一題:leetcode 1448 統(tǒng)計(jì)二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目

    給你一棵根為? root ?的二叉樹(shù),請(qǐng)你返回二叉樹(shù)中好節(jié)點(diǎn)的數(shù)目。 「好節(jié)點(diǎn)」X 定義為:從根到該節(jié)點(diǎn) X 所經(jīng)過(guò)的節(jié)點(diǎn)中,沒(méi)有任何節(jié)點(diǎn)的值大于 X 的值。 示例 1: 示例 2: 示例 3: 提示: 二叉樹(shù)中節(jié)點(diǎn)數(shù)目范圍是? [1, 10^5] ?。 每個(gè)節(jié)點(diǎn)權(quán)值的范圍是? [-10^4, 10^4] ?。 思路

    2024年02月11日
    瀏覽(25)
  • Leetcode每日一題:1782. 統(tǒng)計(jì)點(diǎn)對(duì)的數(shù)目(2023.8.24 C++)

    Leetcode每日一題:1782. 統(tǒng)計(jì)點(diǎn)對(duì)的數(shù)目(2023.8.24 C++)

    目錄 1782. 統(tǒng)計(jì)點(diǎn)對(duì)的數(shù)目 題目描述: 實(shí)現(xiàn)代碼與解析: hash + 雙指針 原理思路: ????????給你一個(gè)無(wú)向圖,無(wú)向圖由整數(shù)? n ??,表示圖中節(jié)點(diǎn)的數(shù)目,和? edges ?組成,其中? edges[i] = [ui, vi] ?表示? ui ?和? vi ?之間有一條無(wú)向邊。同時(shí)給你一個(gè)代表查詢的整數(shù)數(shù)組?

    2024年02月10日
    瀏覽(18)
  • 2023-06-02 LeetCode每日一題(統(tǒng)計(jì)范圍內(nèi)的元音字符串?dāng)?shù))

    點(diǎn)擊跳轉(zhuǎn)到題目位置 給你一個(gè)下標(biāo)從 0 開(kāi)始的字符串?dāng)?shù)組 words 以及一個(gè)二維整數(shù)數(shù)組 queries 。 每個(gè)查詢 queries[i] = [li, ri] 會(huì)要求我們統(tǒng)計(jì)在 words 中下標(biāo)在 li 到 ri 范圍內(nèi)( 包含 這兩個(gè)值)并且以元音開(kāi)頭和結(jié)尾的字符串的數(shù)目。 返回一個(gè)整數(shù)數(shù)組,其中數(shù)組的第 i 個(gè)元素

    2024年02月07日
    瀏覽(33)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包