刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下。里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_map;但是没有弄清楚unordered_map,hash_map的区别。以后遇到了在细细研究。

另一个关于二叉树的笔试真题:http://www.cnblogs.com/ranjiewen/p/5341287.html  。

//小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,
//它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。
//给定两颗钻石的编号g1, g2,编号从1开始,同时给定关系数组vector, 其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,
//第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。请返回这两颗钻石的关系,若g1更重返回1,g2更重返回 - 1,无法判断返回0。
//输入数据保证合法,不会有矛盾情况出现。
//
//
//测试样例:
//
//2, 3, [[1, 2], [2, 4], [1, 3], [4, 3]], 4
//返回: 1 //思路:
//就是一个森林,关系存在就是以g2为根节点的树下面的节点中有g1,
//或者以g1为根节点的树的下面的节点包含g2
//我们采取层序遍历的方式遍历以g1开头的整棵树,和以g2开头的整棵树. #include<iostream>
#include<vector>
#include<unordered_map>
#include<queue>
using namespace std;
class Cmp
{
bool judge(int g1,int g2,unordered_map<int,vector<int>> ans) //判断是否有记录
{
//查找g1是否比g2重
queue<int> q;
unordered_map<int, bool> mark;//用于标记当前节点是否遍历过
q.push(g1);
while (!q.empty())
{
int cur = q.front();
q.pop();
mark[cur] = true;
if (cur==g2) //钻石的重量各不相同,g1和g2不可能相同
{
return true;
}
for (size_t i = ; i < ans[cur].size(); i++)
{
if (!mark[ans[cur][i]]) //没有遍历过 // 2->4->3
q.push(ans[cur][i]);
}
}
}
public:
int cmp(int g1,int g2,vector<vector<int>> records,int n)
{
unordered_map<int, vector<int>> ans;
for (size_t i = ; i < n; i++) //赋值
{
ans[records[i][]].push_back(records[i][]);
}
if (judge(g1,g2,ans))
{
return ;
}
else
{
if (judge(g2, g1, ans))
{
return -;
}
else
return ;
}
}
}; int main() {
int g1 = , g2 = ,n=;
vector<vector<int>> records;
vector<int> a = { , }, b = { , }, c = { , }, d = { , };
records.push_back(a);
records.push_back(b);
records.push_back(c);
records.push_back(d);
Cmp chooseWeighter;
chooseWeighter.cmp(g1,g2,records,n);
return ;
}

根据ans的内存情况,我们可以推断

unordered_map<int,vector<int>> ans的用法,特别是
ans[cur][i]的表示。

网易实习笔试真题C/C++的更多相关文章

  1. 美团点评2017校招笔试真题-算法工程师A

    美团点评2017校招笔试真题-算法工程师A 1.下面哪种STL容器的实现和其它三个不一样 A. set B. deque C. multimap D. map 正确答案: B STL的容器可以分为以下 ...

  2. 美团点评2017校招笔试真题-算法工程师B

    美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 C ...

  3. 《PHP面试笔试真题库》——PHP面试的好帮手

    你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书--<PHP程序员面试笔试真题库>. 一.创作过程 <PHP 程序员面试笔试真题库>是我的第三 ...

  4. 《PHP程序员面试笔试真题解析》——新书上线

    你好,是我--琉忆.很高兴可以跟你分享我的新书. 很高兴,在出版了PHP程序员面试笔试宝典后迎来了我的第二本书出版--<PHP程序员面试笔试真题解析>. 如果你是一个热爱PHP的程序员,刚 ...

  5. 笔试真题解析 ALBB-2015 算法project师实习生机试

    1.用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0. [解析] 计算N.下3进制结果末尾有多少个0,事实上就是计算3进制中的3被进位多少次,仅仅要 ...

  6. unity,C#,游戏面试笔试真题

    最开始的两家公司笔试面试题目 一家公司是学校聘请研究教育方面VR课件的公司,面试没几天,就收到了面试通过的消息,后面因为通过了另一家游戏公司而拒绝了. 另一家公司是一家游戏外企,在春熙路,当时笔试还可 ...

  7. 笔试真题解析 ALBB-2015 系统project师研发笔试题

    4)在小端序的机器中,假设 union X {     int x;     char y[4]; }; 假设 X a; a.x=0x11223344;//16进制 则:() y[0]=11 y[1] ...

  8. Java面试中笔试题——Java代码真题,这些题会做,笔试完全可拿下!

    大家好,我是上海尚学堂Java培训老师,以下这些Java笔试真题是上海尚学堂Java学员在找工作中笔试遇到的真题.现在分享出来,也写了参考答案,供大家学习借鉴.想要更多学习资料和视频请留言联系或者上海 ...

  9. PHP+mysql真题

    PHP+mysql真题 来自<PHP程序员面试笔试宝典>,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. [真题215] 按要求写出SQL实现. ...

随机推荐

  1. C# 字符串计算表达式

     C#  字符串计算表达式 string str="4+4+2.1"; 要的效果: double sum=4+4+2.1: 方案一: 动态计算表达式: 1 public class ...

  2. PHP Session可能会引起并发问题

    在进行Web应用程序开发的时候,人们经常会用Session存储数据.但可能有人不知道,在PHP中,Session使用不当可能会引起并发问题.印度医疗行业软件解决方案提供商Plus91 Technolo ...

  3. Vi Usage

    标签: linux 编辑工具 md 快捷键以及常用命令(前面带:的是命令) h -> 左移一个字符 j -> 下移一行 k -> 上移一行 l -> 右移一个字符 w或Shif ...

  4. Mac AppStore下载文件的获取

    有时候希望把在mac AppStore下载的App共享给其他人,但是application里面的都是已经安装的应用,那么如何找到pkg安装文件呢? (后附:注意事项!) 方法一: 1.首先下载一个Ap ...

  5. BZOJ 1047 理想的正方形(单调队列)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1047 题意:给出一个n*m的矩阵.在所有K*K的子矩阵中,最大最小差值最小的是多少? 思 ...

  6. Lepus经历收获杂谈(二)——QT

    QT简介及相关使用指南 1.QT Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框 ...

  7. Android 工程在4.0基础上混淆

    Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看看pro ...

  8. org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.

    2011-08-16 13:26:58,484 [http-8080-1] ERROR [core.web.ExceptionInterceptor] - org.codehaus.jackson.m ...

  9. timer的使用

    ; private void timer1_Tick(object sender, EventArgs e) //定时执行事件 { button1.Text = i.ToString();//显示按钮 ...

  10. android 单词

    inflate: 胀, 膨, 通货膨胀, 膨胀系数