当前位置: 首页 > news >正文

东莞政务网站建设方案wordpress 适合程序员主题

东莞政务网站建设方案,wordpress 适合程序员主题,网页设计公司背景,佛山销售型网站建设目录 207. 课程表 题目描述#xff1a; 实现代码与解析#xff1a; 拓扑排序 210. 课程表 II 题目描述#xff1a; 实现代码与解析#xff1a; 拓扑排序 原理思路#xff1a; 207. 课程表 题目描述#xff1a; 你这个学期必须选修 numCourses 门课程#xff0…目录 207. 课程表 题目描述 实现代码与解析 拓扑排序 210. 课程表 II 题目描述 实现代码与解析 拓扑排序 原理思路 207. 课程表 题目描述 你这个学期必须选修 numCourses 门课程记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出其中 prerequisites[i] [ai, bi] 表示如果要学习课程 ai 则 必须 先学习课程  bi 。 例如先修课程对 [0, 1] 表示想要学习课程 0 你需要先完成课程 1 。 请你判断是否可能完成所有课程的学习如果可以返回 true 否则返回 false 。         示例 1 输入numCourses 2, prerequisites [[1,0]] 输出true 解释总共有 2 门课程。学习课程 1 之前你需要完成课程 0 。这是可能的。 示例 2 输入numCourses 2, prerequisites [[1,0],[0,1]] 输出false 解释总共有 2 门课程。学习课程 1 之前你需要先完成​课程 0 并且学习课程 0 之前你还应先完成课程 1 。这是不可能的。提示 1 numCourses 20000 prerequisites.length 5000prerequisites[i].length 20 ai, bi numCoursesprerequisites[i] 中的所有课程对 互不相同 实现代码与解析 拓扑排序 class Solution { public:vectorint h vectorint(2010, -1), e vectorint(20010, 0), ne vectorint(20010, 0), d vectorint(2010, 0);int idx 0, cnt 0;void add(int a, int b){e[idx] b; ne[idx] h[a]; h[a] idx;}// 拓扑排序bool topsort(int n){queueint q; // 队列for (int i 0; i n; i)if (d[i] 0) q.push(i); // 入度为 0的入队while(q.size()){int t q.front();cnt;q.pop(); // bfsfor (int i h[t]; ~i; i ne[i]){int j e[i];d[j]--; // 此节点入度减一if(d[j] 0) q.push(j); // 若入度减为0入队}}if (cnt n) return 0; // 入队的结点小于总结点数else return 1;}bool canFinish(int numCourses, vectorvectorint prerequisites) {for (int i 0; i prerequisites.size(); i){add(prerequisites[i][0], prerequisites[i][1]);d[prerequisites[i][1]]; // 入度}if (topsort(numCourses) 0) return false;else return true;} }; 210. 课程表 II 题目描述 现在你总共有 numCourses 门课需要选记为 0 到 numCourses - 1。给你一个数组 prerequisites 其中 prerequisites[i] [ai, bi] 表示在选修课程 ai 前 必须 先选修 bi 。 例如想要学习课程 0 你需要先完成课程 1 我们用一个匹配来表示[0,1] 。 返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序你只要返回 任意一种 就可以了。如果不可能完成所有课程返回 一个空数组 。 示例 1 输入numCourses 2, prerequisites [[1,0]] 输出[0,1] 解释总共有 2 门课程。要学习课程 1你需要先完成课程 0。因此正确的课程顺序为 [0,1] 。示例 2 输入numCourses 4, prerequisites [[1,0],[2,0],[3,1],[3,2]] 输出[0,2,1,3] 解释总共有 4 门课程。要学习课程 3你应该先完成课程 1 和课程 2。并且课程 1 和课程 2 都应该排在课程 0 之后。 因此一个正确的课程顺序是 [0,1,2,3] 。另一个正确的排序是 [0,2,1,3]。 示例 3 输入numCourses 1, prerequisites [] 输出[0]提示 1 numCourses 20000 prerequisites.length numCourses * (numCourses - 1)prerequisites[i].length 20 ai, bi numCoursesai ! bi所有[ai, bi] 互不相同 实现代码与解析 拓扑排序 class Solution { public:vectorint h vectorint(2010, -1), e vectorint(20010, 0), ne vectorint(20010, 0), d vectorint(2010, 0), top vectorint(2010, 0);int idx 0, cnt 0;void add(int a, int b){e[idx] b; ne[idx] h[a]; h[a] idx;}// 拓扑排序bool topsort(int n){queueint q; // 队列for (int i 0; i n; i)if (d[i] 0) q.push(i); // 入度为 0的入队while(q.size()){int t q.front();top[cnt] t;q.pop(); // bfsfor (int i h[t]; ~i; i ne[i]){int j e[i];d[j]--; // 此节点入度减一if(d[j] 0) q.push(j); // 若入度减为0入队}}if (cnt n) return 0; // 入队的结点小于总结点数else return 1;}vectorint findOrder(int numCourses, vectorvectorint prerequisites) {for (int i 0; i prerequisites.size(); i){add(prerequisites[i][1], prerequisites[i][0]);d[prerequisites[i][0]]; // 入度}if (topsort(numCourses) 0) return {};else return vectorint(top.begin(), top.begin() numCourses);} }; 原理思路 其实两道题基本上差不多就是一个需要返回顺序一个不用返回。 本质上都是拓扑排序的基本运用一点都不用改的。 拓扑排序详解带有C模板_Cosmoshhhyyy的博客-CSDN博客 不懂的可以看我之前写的拓扑排序解析。
http://www.hkea.cn/news/14299164/

相关文章:

  • 网站建设 镇江网站流量少
  • 网站兼容网站做可以退款吗
  • 网站外链价格游戏网站wordpress
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案怎样注册自己的货运网站
  • 搜索网站大全排名为自己家秘方做网站
  • 智慧团建网站官网电脑版新年贺卡图片 手工制作
  • 苏州企业网站建设服务好查询商品价格走势的网站
  • 网站建设头像网址大全123设为主页
  • 深圳网站制作公司在那个人网站花多少钱
  • 安徽长江建设集团有限公司网站人社网站和微信平台建设方案
  • 酒泉网站seowordpress进不去设置会乱码
  • 那做网站网络推广运营公司
  • 高端网站建设域名注册学校网站建设考评办法
  • 奥鹏网页设计与网站建设小企业网站建设费用一年
  • 传奇网站如何建设有名的wordpress主题
  • 的做网站公司安装wordpress主题后 显示乱码 怎么解决
  • 三五互联做网站吗dw做网站导航
  • 网站建设移交确认书网站的建设维护推广
  • 网站的建设多少钱wordpress 侧边收起
  • 广州有哪些做网站专业的公司优秀网站首页设计
  • 苏州网站优化排名推广服务机构电子商务网站有哪些
  • 网站常用图片上海网站建设求职简历
  • 张家港做网站校园网站建设的感受论文
  • 网站建设与规划实验心得广告设计哪里可以学
  • 永州网站建设服务建设六马路小学官方网站
  • 建网站需要哪些技术免费的制作网站程序
  • 有什么做兼职的网站比较好企业门户网站的设计 流程图
  • 深圳做手机网站多少钱移动互联网 商业模式
  • 惠州模板网站外贸网站价格表
  • 建设通相似网站合肥公司网站开发