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

2023-09-09 LeetCode每日一題(課程表)

這篇具有很好參考價值的文章主要介紹了2023-09-09 LeetCode每日一題(課程表)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2023-09-09每日一題

一、題目編號

207. 課程表

二、題目鏈接

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

三、題目描述

你這個學期必須選修 numCourses 門課程,記為 0 到 numCourses - 1 。

在選修某些課程之前需要一些先修課程。 先修課程按數(shù)組 prerequisites 給出,其中 prerequisites[i] = [ai, bi] ,表示如果要學習課程 ai 則 必須 先學習課程 bi 。

  • 例如,先修課程對 [0, 1] 表示:想要學習課程 0 ,你需要先完成課程 1 。
    請你判斷是否可能完成所有課程的學習?如果可以,返回 true ;否則,返回 false 。

示例 1:
2023-09-09 LeetCode每日一題(課程表),LeetCode每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)
示例 2:
2023-09-09 LeetCode每日一題(課程表),LeetCode每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)
提示:

  • 1 <= numCourses <= 2000
  • 0 <= prerequisites.length <= 5000
  • prerequisites[i].length == 2
  • 0 <= ai, bi < numCourses
  • prerequisites[i] 中的所有課程對 互不相同

四、解題代碼

class Solution {
    #define maxn 100010
    vector<int> edges[maxn];
    int deg[maxn];

    void addEdge(int v, int u){
        edges[u].push_back(v);
        ++deg[v];
    }

public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        int i;
        int n=prerequisites.size();
        queue<int> q;
        int hash[maxn];
        memset(hash,0,sizeof(hash));
        for(i=0;i<numCourses;i++){
            edges[i].clear();
            deg[i] = 0;
            hash[i] = 0;
        }
       
        for(int i=0;i<n;i++){
            addEdge(prerequisites[i][1],prerequisites[i][0]);
        }
        int x=numCourses;
        for(int i=0;i<numCourses;i++){
            if(!deg[i]){
                q.push(i);
                x--;
                hash[i]=1;
            }
        }

        while( !q.empty() ){
            int u=q.front();
            q.pop();
            for(int i=0;i<edges[u].size();i++){
                int v=edges[u][i];
                deg[v]--;
                if(hash[v]==0 && deg[v]==0){
                    q.push(v);
                    hash[v]=1;
                    x--;
                }
            }      
        }
        if(x==0){
            return true;
        }
    return false;
    }
};

五、解題思路

(1) 使用拓撲排序可以很輕松的的解決這道題目。這也是拓撲排序的一道經(jīng)典例題。文章來源地址http://www.zghlxwxcb.cn/news/detail-703825.html

到了這里,關(guān)于2023-09-09 LeetCode每日一題(課程表)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • leetcode 630. 課程表 III

    這里有 n 門不同的在線課程,按從 1 到 n 編號。給你一個數(shù)組 courses ,其中 courses[i] = [durationi, lastDayi] 表示第 i 門課將會 持續(xù) 上 durationi 天課,并且必須在不晚于 lastDayi 的時候完成。 你的學期從第 1 天開始。且不能同時修讀兩門及兩門以上的課程。 返回你最多可以修讀的課

    2024年02月16日
    瀏覽(13)
  • 【圖論】Leetcode 207. 課程表【中等】

    你這個學期必須選修 numCourses 門課程,記為 0 到 numCourses - 1 。 在選修某些課程之前需要一些先修課程。 先修課程按數(shù)組 prerequisites 給出,其中 prerequisites[i] = [ai, bi] ,表示如果要學習課程 ai 則 必須 先學習課程 bi 。 例如,先修課程對 [0, 1] 表示:想要學習課程 0 ,你需要先

    2024年04月14日
    瀏覽(26)
  • 【LeetCode】210. 課程表 II——拓撲排序

    【LeetCode】210. 課程表 II——拓撲排序

    題目鏈接:210. 課程表 II 題目描述: 現(xiàn)在你總共有 numCourses 門課需要選,記為 0 到 numCourses - 1。給你一個數(shù)組 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在選修課程 ai 前 必須 先選修 bi 。 例如,想要學習課程 0 ,你需要先完成課程 1 ,我們用一個匹配來表示:[0,1] 。 返

    2024年02月09日
    瀏覽(22)
  • 【LeetCode: 210. 課程表 II:拓撲排序+圖】

    【LeetCode: 210. 課程表 II:拓撲排序+圖】

    ?? 算法題 ?? ?? 算法刷題專欄 | 面試必備算法 | 面試高頻算法 ?? ?? 越難的東西,越要努力堅持,因為它具有很高的價值,算法就是這樣? ?? 作者簡介:碩風和煒,CSDN-Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??,保研|國家獎學金|高中學習JAVA|大學完善JAVA開發(fā)技術(shù)棧|面試刷題|面經(jīng)八股文

    2024年02月09日
    瀏覽(29)
  • LeetCode 0630.課程表 III:貪心 + 優(yōu)先隊列

    力扣題目鏈接:https://leetcode.cn/problems/course-schedule-iii/ 這里有 n 門不同的在線課程,按從 1 到 n ?編號。給你一個數(shù)組 courses ,其中 courses[i] = [duration i , lastDay i ] 表示第 i 門課將會 持續(xù) 上 duration i 天課,并且必須在不晚于 lastDay i 的時候完成。 你的學期從第 1 天開始。且不能

    2024年02月09日
    瀏覽(20)
  • 【LeetCode熱題100】打卡第38天:課程表&實現(xiàn)前綴樹

    【LeetCode熱題100】打卡第38天:課程表&實現(xiàn)前綴樹

    大家好,我是知識汲取者,歡迎來到我的LeetCode熱題100刷題專欄! 精選 100 道力扣(LeetCode)上最熱門的題目,適合初識算法與數(shù)據(jù)結(jié)構(gòu)的新手和想要在短時間內(nèi)高效提升的人,熟練掌握這 100 道題,你就已經(jīng)具備了在代碼世界通行的基本能力。在此專欄中,我們將會涵蓋各種

    2024年02月17日
    瀏覽(16)
  • 2023-09-08 LeetCode每日一題(計算列車到站時間)

    2023-09-08 LeetCode每日一題(計算列車到站時間)

    點擊跳轉(zhuǎn)到題目位置 給你一個正整數(shù) arrivalTime 表示列車正點到站的時間(單位:小時),另給你一個正整數(shù) delayedTime 表示列車延誤的小時數(shù)。 返回列車實際到站的時間。 注意,該問題中的時間采用 24 小時制。 示例 1: 示例 2: 提示: 1 = arrivaltime 24 1 = delayedTime = 24 (1) 運用

    2024年02月09日
    瀏覽(20)
  • 2023-09-02 LeetCode每日一題(最多可以摧毀的敵人城堡數(shù)目)

    2023-09-02 LeetCode每日一題(最多可以摧毀的敵人城堡數(shù)目)

    點擊跳轉(zhuǎn)到題目位置 給你一個長度為 n ,下標從 0 開始的整數(shù)數(shù)組 forts ,表示一些城堡。forts[i] 可以是 -1 ,0 或者 1 ,其中: -1 表示第 i 個位置 沒有 城堡。 0 表示第 i 個位置有一個 敵人 的城堡。 1 表示第 i 個位置有一個你控制的城堡。 現(xiàn)在,你需要決定,將你的軍隊從

    2024年02月10日
    瀏覽(16)
  • 2023-09-05 LeetCode每日一題(從兩個數(shù)字數(shù)組里生成最小數(shù)字)

    2023-09-05 LeetCode每日一題(從兩個數(shù)字數(shù)組里生成最小數(shù)字)

    點擊跳轉(zhuǎn)到題目位置 給你兩個只包含 1 到 9 之間數(shù)字的數(shù)組 nums1 和 nums2 ,每個數(shù)組中的元素 互不相同 ,請你返回 最小 的數(shù)字,兩個數(shù)組都 至少 包含這個數(shù)字的某個數(shù)位。 示例 1: 示例 2: 提示: 1 = nums1.length, nums2.length = 9 1 = nums1[i], nums2[i] = 9 每個數(shù)組中,元素 互不相

    2024年02月09日
    瀏覽(29)
  • 2023-07-28 LeetCode每日一題(并行課程 III)

    2023-07-28 LeetCode每日一題(并行課程 III)

    點擊跳轉(zhuǎn)到題目位置 給你一個整數(shù) n ,表示有 n 節(jié)課,課程編號從 1 到 n 。同時給你一個二維整數(shù)數(shù)組 relations ,其中 relations[j] = [prevCourse j , nextCourse j ] ,表示課程 prevCoursej 必須在課程 nextCourse j 之前 完成(先修課的關(guān)系)。同時給你一個下標從 0 開始的整數(shù)數(shù)組 time ,其

    2024年02月15日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包