最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++哈希表優(yōu)化LeetCode題解997找到小鎮(zhèn)的法官

 更新時間:2022年12月28日 10:35:20   作者:彤哥來刷題啦  
這篇文章主要為大家介紹了C/C++哈希表優(yōu)化題解997找到小鎮(zhèn)的法官示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

方法一、哈希表

今天這道題比較簡單,我們可以統計每個人信任別人的數量和被信任的數量,如果存在某個人信任別人的數量為0,且被信任的數量為 n-1,那么,這個人就是法官。

因為本題的數據范圍為 [1,1000],數據范圍比較小,所以,直接使用數組作為哈希表來使用。

請看代碼:

class Solution {
    public int findJudge(int n, int[][] trust) {
        // 不信任任何人的人 & 被所有人信任的人
        // 計算每個人信任的人的數量和被信任的數量
        // 前者等于0,后者等于n-1
        int[][] arr = new int[n + 1][2];
        for (int[] t : trust) {
            // 0表示信任別人
            arr[t[0]][0]++;
            // 1表示被別人信任
            arr[t[1]][1]++;
        }
        
        for (int i = 1; i <= n; i++) {
            if (arr[i][0] == 0 && arr[i][1] == n - 1) {
                return i;
            }
        }
                return -1;
    }
}
  • 時間復雜度:O(m),m 為 trust 數組的長度。
  • 空間復雜度:O(n)。

運行結果如下:

方法二、優(yōu)化

方法一中,我們使用了一個二維數組的第二維表示信任別人的數量和被別人信任的數量,其實,我們也可以使用一個一維數組來求解, 減一表示信任別人的數量,加一表示被別人信任的數量,那么,只有法官才可能達到 n-1 的總數量。

請看代碼:

class Solution {
    public int findJudge(int n, int[][] trust) {
        // 不信任任何人的人 & 被所有人信任的人
        int[] arr = new int[n + 1];
        for (int[] t : trust) {
            // 減一表示信任別人
            arr[t[0]]--;
            // 加一表示被別人信任
            arr[t[1]]++;
        }
        
        for (int i = 1; i <= n; i++) {
            // 因為被別人信任不可能超過 n-1
            // 所以,只有法官能達到 n-1
            // 且法官信任別人數量為 0
            // 所以,總的數量為 n-1
            if (arr[i] == n - 1) {
                return i;
            }
        }
                return -1;
    }
}
  • 時間復雜度:O(m),m 為 trust 數組的長度。
  • 空間復雜度:O(n)。

以上就是C/C++哈希表優(yōu)化LeetCode題解997找到小鎮(zhèn)的法官的詳細內容,更多關于C/C++哈希表優(yōu)化找到小鎮(zhèn)法官的資料請關注腳本之家其它相關文章!

相關文章

  • c++回溯法解決1到9之間插入加減或空使運算結果為100

    c++回溯法解決1到9之間插入加減或空使運算結果為100

    編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什么都不插入,使得計算結果總是100的程序,并輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100
    2021-10-10
  • C++?常量成員函數學習筆記

    C++?常量成員函數學習筆記

    這篇文章主要為大家介紹了C++?常量成員函數學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • VS編譯出現MSB3073命令的解決方案

    VS編譯出現MSB3073命令的解決方案

    =error MSB3073是Visual Studio編譯器報出的錯誤,本文主要介紹了VS編譯出現MSB3073命令的解決方案,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • C++實現LeetCode(119.楊輝三角之二)

    C++實現LeetCode(119.楊輝三角之二)

    這篇文章主要介紹了C++實現LeetCode(119.楊輝三角之二),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • socket多人聊天程序C語言版(一)

    socket多人聊天程序C語言版(一)

    這篇文章主要為大家詳細介紹了socket多人聊天程序C語言版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 詳解散列表算法與其相關的C語言實現

    詳解散列表算法與其相關的C語言實現

    這篇文章主要介紹了詳解散列表算法與其相關的C語言實現,平時經常出現于各大考試競賽與程序員面試題目當中,需要的朋友可以參考下
    2015-08-08
  • C語言實現流星雨效果流程

    C語言實現流星雨效果流程

    C本篇文章帶你用C語言去實現漫天流星雨的效果,代碼寫的很清晰,效果非常棒,另有視頻詳解整個過程,相信你一定能看懂,感興趣的童鞋快來看看吧
    2021-11-11
  • c++自定義sort()函數的排序方法介紹

    c++自定義sort()函數的排序方法介紹

    這篇文章主要介紹了c++自定義sort()函數的排序方法介紹,文章通過圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • C++簡明分析講解引用與函數提高及重載

    C++簡明分析講解引用與函數提高及重載

    今天繼續(xù)開始對C++核心編程知識的分享與系統講解,第一,這里會提到“引用”方法傳參以及剖析引用的本質;第二,我們對函數來一個提高,相當于進階函數了,包括函數的默認值,簡單的提一下函數的占位參數,函數重載以及注意事項,接下來上正文
    2022-05-05
  • Qt圖形圖像開發(fā)曲線圖表模塊QChart庫縮放/平移詳細方法與實例

    Qt圖形圖像開發(fā)曲線圖表模塊QChart庫縮放/平移詳細方法與實例

    這篇文章主要介紹了Qt圖形圖像開發(fā)曲線圖表模塊QChart庫縮放/平移詳細方法與實例,需要的朋友可以參考下
    2020-03-03

最新評論

肇东市| 东阿县| 青河县| 石泉县| 渭南市| 布尔津县| 斗六市| 彝良县| 揭阳市| 仪征市| 马公市| 莆田市| 云龙县| 大安市| 禹州市| 长丰县| 监利县| 兴义市| 孝义市| 安国市| 梨树县| 泗洪县| 邓州市| 通州市| 莆田市| 盘山县| 蓬溪县| 从化市| 安宁市| 钦州市| 达拉特旗| 克东县| 大石桥市| 乌拉特后旗| 吉水县| 巴东县| 洪泽县| 昭觉县| 府谷县| 安庆市| 临安市|