I.graph

#include <iostream>
#include <vector> using namespace std;
vector<vector<int>> graph={{-,,,,},{,-,,,},{,,-,,},{,,,-,},{,,,,-}}; vector<int> toposort(vector<vector<int>> graph){
vector<int> res;
auto n=graph.size(),k=n;
vector<int> rudu(n,);
vector<int> visited(n,);
for(int i=;i<n;i++){
for(int j=;j<n;j++){
if(graph[i][j]>)
rudu[j]++;
}
}
while (k--) {
for(int i=;i<n;i++){
if(rudu[i]==&&visited[i]==){
res.push_back(i);
visited[i]=;
for(int j=;j<n;j++){
if(graph[i][j]>)
rudu[j]--;
}
break;
}
}
}
return res;
} vector<int> dijkstra(vector<vector<int>> graph,int t){
auto n=graph.size(),k=n;
vector<int> dist(n,INT32_MAX);
vector<int> visited(n,);
dist[t]=;
visited[t]=;
int cur=INT32_MAX;
while(k--){
cur=INT32_MAX;
for(int i=;i<n;i++){
if(visited[i]== && dist[i]<cur){
cur=dist[i];
t=i;
}
}
for(int i=;i<n;i++){
if(visited[i]== && graph[t][i]>){
dist[i]=min(dist[i],graph[t][i]+dist[t]);
}
}
visited[t]=;
}
return dist;
} int main(){
//1.DFS,BFS 类似树的非递归DFS和BFS,区别是需要一个list来标记哪些节点访问过,用来避免回路。 //2.拓扑排序(有向图),出度入度逐渐剪枝思想,可以用来检查图是否有环(无向图总是减去度为1的),检查是否完全联通或有几个联通子图
vector<int> topolist=toposort(graph); //3.最短路径 Dijkstra 该算法要求图中不存在负权边
vector<int> dist=dijkstra(graph,); }

II.binary search

重在边界上:

  •   begin=mid;  vs      begin=mid+1;
  • end=mid;        vs      end=mid-1;
  • if(begin<end)   vs      if(begin<=end)
  • mid=(begin+end)/2     vs   mid=(begin+end+1)/2

programming review (c++): (3)graph, binary search的更多相关文章

  1. [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法

    二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...

  2. Leetcode: Convert sorted list to binary search tree (No. 109)

    Sept. 22, 2015 学一道算法题, 经常回顾一下. 第二次重温, 决定增加一些图片, 帮助自己记忆. 在网上找他人的资料, 不如自己动手. 把从底向上树的算法搞通俗一些. 先做一个例子: 9 ...

  3. [LeetCode] Unique Binary Search Trees II 独一无二的二叉搜索树之二

    Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...

  4. LEETCODE —— Unique Binary Search Trees [动态规划]

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  5. LeetCode: Unique Binary Search Trees II 解题报告

    Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search trees) ...

  6. Unique Binary Search Trees [LeetCode]

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  7. 关于binary search的一点解惑

    在写binary search时对于mid的计算我最开始使用的是 mid = (low + high)/2; 后来看到在很多的实现为 mid = low + (high - low)/2; 想了一下两 ...

  8. leetcode:Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  9. 【LeetCode】96 - Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

随机推荐

  1. 关于centos防火墙

    Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld ...

  2. 不一样视角的Glide剖析

    推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) Glide是一个快速高效的Android图片加载库,注重于平滑的 ...

  3. 洛谷——P2626 斐波那契数列(升级版)

    P2626 斐波那契数列(升级版) 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ ...

  4. Algorithm | Random

    随机生成[0,n)中不重复的m个数. class Random { public: Random(int n, int m):n(n), m(m) {} void generate() { srand ...

  5. IOS开发者账号的相关配置 - 接受邀请后的步骤

    说明: 1.本文主要针对企业账户, 并假定主账号已经申请到了. 2.账号类型分为3种:Agent(创建者),Admin(管理员)及Member(成员) 一. 1.申请子账号 使用Agent或Admin ...

  6. selenium用法 (python)

    滑动到指定元素位置 browser.find_element_by_xpath("//font[text()='资产管理部经办人'][1]").location_once_scro ...

  7. VS2010中打开VS2012项目的方法

    VS2012中对C#的支持度非常好,不管是编写方便程度(不需要插件就能高亮代码及代码自动提示功能),还对MFC的一些功能优化很多. 修改两个工程文件就把VS2012的项目移植到VS2010中去的方法如 ...

  8. 时间迭代和BigDecimal操作

    常规小操作的代码: import java.math.BigDecimal; import java.sql.Timestamp; import java.text.SimpleDateFormat; ...

  9. 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版

    若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...

  10. jquery Table基础操作

    鼠标移动行变色     $("#table1 tr").hover(function(){          $(this).children("td").ad ...