今天做了一下谷歌2013年校园招聘第二轮机试题,自己独立把程序写出来并且调试通过。

原题网址:https://code.google.com/codejam/contest/2929486/dashboard#s=p0

先说一下题目的大致意思:

1.输入一个整数N:3 ≤ N ≤ 6

2.输入一个N2xN2 阶矩阵

3.判断是否是数独:

数独必须同时满足以下三个条件:(1)每一行是从1到N2的互异整数

(2)每一列是从1到N2的互异整数

(3)把这个矩阵分为N2个不重叠的子矩阵,每个子矩阵包含1到N2的互异整数

例如:N = 3时,如图所示

是一个数独。

我的解题思路:

(1)先判断输入的数是否在1到N2范围内,如果不在,则说明不是数独。

(2)判断N2行和N2列是否是互异的元素:这里用到了标准库的容器set,把N2个数放入一个set中,然后调用set.size()函数,看其返回值是否等于N2,如果不等于N2,则不是数独。
               (3)循环把N2个子矩阵的所有元素放入set中,然后调用set.size()函数,看其返回值是否等于N2,如果不等于N2,则不是数独。

下面直接上代码:

#include <iostream>
#include <stdlib.h>
#include <vector>
#include <set>
using namespace std;
//判断一个n×n的矩阵的各行、各列元素是否互异
bool isSoduku(int *p,int n)
{int i,j;bool b1 = false;bool b2 = false;for(i = 0;i < n;i++){set<int> rs;for(j = 0;j < n;j++){int temp = *(p + i*n + j);rs.insert(temp);}if(n == rs.size())b1 = true;}for(j = 0;j < n;j++){set<int> cs;for(i = 0;i < n;i++){int t = *(p + i + j*n);cs.insert(t);}if(n == cs.size())b2 = true;}return (b1 && b2);
}
int main()
{int T;cin>>T;bool *re = new bool[T];for(int l = 0;l < T;l++)re[l] = true;for(int i = 0;i < T;i++){int n;cin>>n;int **a = new int *[n*n];for(int r = 0;r < n*n;r++)a[r] = new int [n*n];for(int j = 0;j < n*n;j++){for(int k = 0;k < n*n;k++){cin>>a[j][k];if(a[j][k] < 1 || a[j][k] > n*n)re[i] = false;}}//如果输入的数不在1到N的平方的范围内,则继续测试下一个用例if(!re[i])continue;//如果矩阵各行、各列的数不互异,则继续测试下一个用例if(!isSoduku((int*)a,n*n)){re[i] = false;continue;}else{bool con = true;//循环测试N*N个子矩阵,看它们中的元素是否互异for(int p = 0;p < n;p++){if(!con)break;for(int q = 0;q < n;q++){set<int> s;for(int x = 0;x < n;x++){for(int y = 0;y < n;y++)   s.insert(a[x + n*p][y + n*q]);}if(s.size() != n*n){re[i] = false;con = false;break;}}}}for(int num = 0;num < n*n;num++){delete[] a[num];}delete a;}for(int i = 0;i < T;i++){if(re[i])cout<<"Case #"<<i+1<<":Yes"<<endl;elsecout<<"Case #"<<i+1<<":No"<<endl;}delete re;return 0;
}

谷歌2014年中国区应届毕业生校园招聘B轮机试第一题——数独问题的解法(C++实现)相关推荐

  1. 腾讯校园招聘笔试 2019-8-17 第四题 另一种解法

    之前在博客https://blog.csdn.net/hanzhen7541/article/details/99710954中我们讨论了一种单调栈的解法,复杂度是O(nlogn).那么实际上还有一种 ...

  2. 京东校园招聘2019.04.13 第一题 01序列拉齐

    题目描述 拉齐有一个01序列,他可以对这个序列进行任意多次变换,每次变换都是把序列的最后若干个元素放到最前面,例如:010011,将最后三个元素011放到最前面,序列变为011010.所有变换结束后, ...

  3. 华为2014校园招聘的机试题目

    华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...

  4. 应届毕业生的招聘技巧

    应届毕业生的招聘技巧 陈能技 2007-9-9 三国时代,刘备三顾茅庐请诸葛亮出山.我在想,这时候诸葛亮不也是毕业生吗?!他在这之前没有任何实战经验啊.对于一个没有经验的人,刘备作为项目经理,为什么要 ...

  5. 华为2014校园招聘合肥机试

    华为2014校园招聘合肥机试,简历投晚了,没去参加机试,题目是听参加的同学描述的,大致意思如下 第一题:整数分解,将整数n分解成不同因子的和,后一因子要比前一因子大,且最大因子要小于n,其中n< ...

  6. 2011-2012年腾讯,创新工场,淘宝,百度,阿里,迅雷。网易游戏校园招聘面试题集锦(1-25题含答案)

    2011-2012年腾讯,创新工场,淘宝,百度,阿里,迅雷.网易游戏校园招聘面试题集锦(1-25题含答案) 又是一年招聘季,小鸟我也在本季参加招聘,所以特在网上和群里面这里去年和今年的面试题,以备战招 ...

  7. vivo2020届春季校园招聘在线编程考试--[编程题]vivo智能手机产能

    vivo2020届春季校园招聘在线编程考试--[编程题]vivo智能手机产能 题目 解题思路 代码块 题目 在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升. 假 ...

  8. vivo2020届春季校园招聘在线编程考试--[编程题]数位之积

    vivo2020届春季校园招聘在线编程考试--[编程题]数位之积 题目 解题思路 代码块 题目 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 现给定任意正 ...

  9. 哔哩哔哩swot分析_哔哩哔哩2020校园招聘游戏运营笔试真题

    在前不久<英雄联盟>S9世界大赛总决赛上,中国FPX战队以3:0横扫欧洲G2最终夺得S9世界冠军,国内玩家万分激动. 总决赛刚结束不久,B站以8亿元价格拍得<英雄联盟>全球总决 ...

最新文章

  1. linux内网机器访问外网代理设置squid
  2. 网站无法显示logo?
  3. OpenCV Harris角点检测
  4. 做网站没有技术万万不能
  5. lua运行外部程序_一起聊聊redis(5)——c#的lua脚本应用实例之高并发抢口罩
  6. java jvm内存地址_JVM--Java内存区域
  7. c语言程序设计实验实训教程公众号,C语言程序设计基础知道答案公众号
  8. 查看云服务器系统的命令,查看云服务器系统的命令
  9. GYM 101617 F
  10. Android开发学习之ImageView手势拖拽、缩放、旋转
  11. rpm软件包管理的详细解读
  12. 经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
  13. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能
  14. java集群如何同步_Kafka 跨集群同步方案
  15. BING搜索引擎技巧
  16. 了解掌握Java的循环语句、条件语句、分支语句(Java 从自学到就业 第3天)
  17. 爬取百度地图,获取城市楼盘信息
  18. java大作业1--电话簿
  19. 直入樱花深处,静待落英满襟
  20. 技术探究 通用场景描述(Universial Scene Description, USD)

热门文章

  1. java 反射 set方法_java 反射调用set方法
  2. 合作:对应fork来的项目进行修改操作
  3. Swin-Transformer网络结构详解
  4. 超级好看的动态官网源码
  5. 爱快路由系统带PPPOE服务器吗,爱快路由+华为交换机 实现vlan下拨号到爱快pppoe服务器...
  6. Windows10中Edge浏览器突然出现“无法访问该页面”问题的解决方案
  7. 最后一周 | 微生物组-宏基因组分析(线上/线下同时开课,2021.1)
  8. VS2019离线安装包下载方法
  9. 卡马克揭开VR延迟背后的真相
  10. 水果店收银系统解决方案