招商银行信用卡2019届实习笔试题
招商银行信用卡2019届实习笔试题
题目表述:如图
思路:有向图中找回环。(具体方法和原理可以参考相关博客)同时标记那些指向回环的顶点。全部的顶点去掉被标记的顶点,输出就是答案了。完全按照题目中的提示想的。具体方法就是构建有向图,dfs找环,保存环内顶点。
代码:
#include<iostream>
#include<malloc.h>
#include <vector>
#include <stack>
using namespace std;
#define maxNum 10005
stack<int> s;
vector<int>ans(maxNum);
bool is_DAG=true;
int color[maxNum]; typedef struct
{ char v[maxNum]; int e[maxNum][maxNum];int vNum; int eNum;
}graph; void createGraph(graph *g);
void DFS(graph *g);
void dfs(graph *g,int i);void dfs(graph *g,int i)
{ //cout<<"顶点"<<i<<"已经被访问"<<endl; s.push(i);color[i]=-1; for(int j=1;j<=g->vNum;j++) { if(g->e[i][j]!=0) { if(color[j]==-1)//探索到回边,存在环 { is_DAG=false;//不是有向无环图 while (!s.empty()){int flag = s.top();s.pop();ans[flag] = 1;}} else if(color[j]==0) { dfs(g,j);}} } color[i]=1;//表示i的后裔节点都被访问过
} void DFS(graph *g)
{ int i; //初始化color数组,表示一开始所有顶点都未被访问过,//初始化pre和post for(i=1;i<=g->vNum;i++) { color[i]=0; } //深度优先搜索 for(i=1;i<=g->vNum;i++) { if(color[i]==0)//如果这个顶点为被访问过,则从i顶点出发进行深度优先遍历 { dfs(g,i); } }
} void createGraph(graph *g)//创建图g
{ cin>>g->vNum; cin>>g->eNum; int i,j;//初始画图g for(i=1;i<=g->vNum;i++) for(j=1;j<=g->vNum;j++) g->e[i][j]=0; //输入边的情况 for(int k=1;k<=g->eNum;k++) { scanf("%d,%d", &i,&j); g->e[i][j]=1; }
}
int main()
{ graph *g; g=(graph*)malloc(sizeof(graph)); createGraph(g);//创建图g DFS(g);//深度优先遍历 //判断是否是有向无环图 for (int i=0;i<=g->vNum;i++){if (ans[i] == 1){for (int j=0;j<=g->vNum;j++){if (g->e[j][i]!=0){ans[j] = 1;}}}}vector<int>final_ans;for (int i=1;i<=g->vNum;i++)if (ans[i] != 1){final_ans.push_back(i);}if (final_ans.size() == 0){printf("None\n");return 0; }for (int i=0;i<final_ans.size()-1;i++)printf("%d ", final_ans[i]);printf("%d", final_ans[final_ans.size()-1]);return 0;
}
代码中图的结构是之前有参考其他博客中的,具体忘记了。
招商银行信用卡2019届实习笔试题相关推荐
- 2019届华为笔试题(软件卷)
华为笔试题共3道编程题.第一题100分,第二题200分,第三题300分,一共600分. 第一题: 输入描述: 1.忽略小数点,例如"A1.2",认为包含整数1和2: 2.如果整数的 ...
- 微软2019暑期实习笔试题
微软2019招暑期实习生的编程题 问题一: [玻璃球游戏] 一个队伍中N个人从1到N编号,N个人之间的连线方式如下:编号为K的人和编号为J的人相连(J exactly divides K),玻璃球可 ...
- 华为2019暑期实习笔试题
目录 第一题 题意 思路 代码 第二题 题意 思路 代码 第三题 题意 思路 代码 笔试共有3道编程题,分别为100分.200分.300分,两个小时.以下内容的编写全凭记忆和个人理解,如有什么不对的地 ...
- 字节跳动2019届校招笔试题
1.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷.在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人. 经调研发现,球迷群体在选座时有以下 ...
- 2021.4.11 字节跳动实习笔试题---情报解密
2021.4.11 字节跳动实习笔试题-情报解密 题目内容 题目内容: 给你一个字符串,该字符串中有数字,字母(字母只有大写字母)以及一些其他的字符(例如:%,.等),如果首字母为字母或者数字的话,就 ...
- 2014.3.29阿里巴巴暑期实习笔试题分析
參考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 以下中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 ...
- C语言单链表实现FCFS算法,2014腾讯实习笔试题
2014腾讯实习笔试题 1. 关于二叉树,下面说法正确的是() A. 对于N个节点的二叉树,其高度为nlog2n; B. 一个具有1025个节点的二叉树,其高度范围在11~1025之间 C. 二叉树的 ...
- 头条2020届实习生笔试题
头条2020届实习生笔试题 一卷 编程题: 输入某年某月某日,判断这一天是这一年的第几天? // 判断是否为闰年function isRun(a) {return a % 4 == 0 &&a ...
- 记 随手科技2020届实习生笔试题(Java开发工程师)笔试题
2020届实习生笔试题(Java开发工程师) 一.选择题(共6题,每小题5分,满分30分) 1 2 3 4 5 6 总分 B B A C B C 1.下列排序算法中,初始数据集合对排序性能无影响的是( ...
最新文章
- 推荐!神经进化才是深度学习未来的发展之路!
- 【翻译】了解Ext JS 5的小部件
- 这个奇葩打字外设火了,一分钟500词比说话还快,直接被打字比赛禁用
- ubantu mysql允许外部链接_ubuntu 下mysql 设置允许远程连接
- JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)
- go语言学习笔记(2)命令源码文件
- java面试题八 传值传引用
- C/C++经典面试题
- mtk android 5.1 logo,Android ROM DIY之MTK平台手机通用移植
- 云栖社区,诚邀技术同仁一同入驻
- HDU 5979 2016ICPC大连 I: Convex
- 图片转化为base64编码python版本
- Android TextView drawableLeft 在代码中实现
- php集成环境xampp完整安装过程
- matlab 求虚数的反正切,matlab中的反正切函数
- 基于SSM的高校学生宿舍报修管理系统
- 使用JS与jQuery实现文字逐渐出现特效
- 关于Git及GitLab的简单易懂的使用方法(将本地仓库的项目提交到master分支或者自定义的分支上)
- Python中的enumerate用法
- Rust 图像处理库 image-rs
热门文章
- c语音删除字符数组中的元素
- ImGui添加背景图片的两种方式
- git_error:src refspec dev does not match any
- 【Get深一度】Microsoft Office 2013 Word中图片插入后变模糊解决办法
- 宽带和流量是分开的吗_宽带、带宽和流量的区别
- 微信小程序登陆验证机制理解及实现
- 利用pdf2image,将pdf文件转换成图片
- 删除我的电脑中微云、百度网盘、酷我音乐等软件图标
- 基本函数依赖和候选键_[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)...
- 网页调用 iOS/Android 客户端