zoukankan      html  css  js  c++  java
  • 【leetcode】210. 课程表 II

    int* findOrder(int numCourses, int** prerequisites, int prerequisitesSize, int* prerequisitesColSize, int* returnSize){
        int** edges = (int**)calloc(numCourses, sizeof(int*));
        int* edgesColSize = (int*)calloc(numCourses, sizeof(int));
        int* cnt = (int*)calloc(numCourses, sizeof(int));
        int* arr = (int*)calloc(numCourses, sizeof(int));
    
        *returnSize = 0;
        int i, a, b, left=0;
    
        for (i = 0; i < numCourses; i++)
            edges[i] = (int*)malloc(0);
    
        for (i = 0; i < prerequisitesSize; i++){
            a = prerequisites[i][1]; b = prerequisites[i][0];
            edges[a] = (int*)realloc(edges[a], sizeof(int)* ++edgesColSize[a]);
            edges[a][edgesColSize[a] - 1] = b;
            cnt[b]++;
        }
        for (i = 0; i < numCourses; i++){
            if (cnt[i] == 0)
                arr[(*returnSize)++] = i;
        }
        while (left < *returnSize){
            int u = arr[left++];
            for (i = 0; i < edgesColSize[u]; i++){
                cnt[edges[u][i]]--;
                if (cnt[edges[u][i]]==0)
                    arr[(*returnSize)++] = edges[u][i];
            }
        }
        if (*returnSize != numCourses)
            *returnSize = 0;
        return arr;
    }
  • 相关阅读:
    mysql优化
    查询优化
    MySql服务器逻辑架构
    存储过程和存储函数区别
    mysql表设计原则
    mysql事务
    操作系统内存管理
    mysql索引介绍
    InnoDB与Myisam的区别
    【SVN】关于钩子的一些使用
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14194629.html
Copyright © 2011-2022 走看看