一道微软的面试题:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);我当时写了个算法:但效率不高,需要优

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 18:46:19
一道微软的面试题:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);我当时写了个算法:但效率不高,需要优

一道微软的面试题:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);我当时写了个算法:但效率不高,需要优
一道微软的面试题:
有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);
我当时写了个算法:但效率不高,需要优化,
bool F(int [10][10]input)
{
for(int i=0;i

一道微软的面试题:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);我当时写了个算法:但效率不高,需要优
bool F( int [ 10 ][ 10 ] input )
{
int nRowAllOne = 0;
int nColAllZero = 0;
int nColAllZeroTemp = 0;
for( int i=0; i < 10; i++ )
{
int sumRow = 0;
int j;
for( j = 0; j < 10; j++ )
{
if( 0 < i )//从第二行开始,把元素值都加到第一行对应元素中
{
input[ 0 ][ j ] += input[ i ][ j ];
}
sumRow += input[ i ][ j ];//把当前列每个元素加到变量
if( 9 == i )//当前为最后一行,也已经加到第一行了
{
//加过有列为整列和为全部是1的行数且该元素是0,则认为i该列除了那几个1之外都是0
if( nRowAllOne == input[ 0 ][ j ] && 0 == input[ i ][ j ] )
{
nColAllZero++;
}
//加过有列为整列和为全部是1的行数+1且该元素是1,则暂时认为i该列除了那几个1之外都是0
else if( nRowAllOne + 1 == input[ 0 ][ j ] && 1 == input[ i ][ j ] )
{
nColAllZeroTemp++;
}
}
}
if( 10 == sumRow )//行全部元素和为4则该行全部都是1
{
nRowAllOne++;//有行全为1
if( 9 == i )//最后一行全都是1,则暂时认为的全部为0也都是
{
nColAllZero += nColAllZeroTemp;
}
}
}
//如果有多行都是1,则
if( 0 < nRowAllOne && 0 < nColAllZero )//至少有一行都为1,且有一列都为0(除了该行的这个元素为1外)
{
return true;
}
return false;//没有
}

一道微软的面试题:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外);我当时写了个算法:但效率不高,需要优 微软的英语口语面试题 微软的一道面试题有4个女人要过一座桥.她们都站在桥的一边.这时是晚上.她们只有一个手电筒.最多只能让两个人同时过桥.不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒.手电筒 有没有一本书,里面全是微软的面试题,书名叫什么?其他一些关于逻辑思维的智力题也行. 1道真正难倒亿人的智力题,这是微软的面试题2囚犯活命问题简介:一道真正难倒亿人的智力题,这是微软的面试题.5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓 微软面试题——海盗分金币被问及微软一个面试题:海盗分金币5个海盗抢得100枚金币后,讨论如何进行公正分配.他们商定的分配原则是:(1)抽签确定各人的分配顺序号码(1,2,3,4,5);(2 微软面试题 晚上有四个人过一座桥每个人速度不同只有一把手电筒桥最多一次能过2人而每次过桥都需要手电筒过桥速度取决速度慢的人 四个过桥的时间分别是1 ,2 ,5, 10分钟 怎么过17分钟 人民币为什么只有1、2、5、10、20、50、100元的面值一道面试题. 微软公司的一道面试题,请在下面的括号中填入一个符号,满足其逻辑性规律:1 2 3 4 ()5 6 7 8注:5就不用回答了,肯定是错的,我觉得微软作为计算机软件行业的大公司,这个应该和程序有关,应 一道微软的面试题.从甲地去往乙地,A马要走一个小时,B马要走两个小时,C马四个小时,D马五个小时,现要把四个马全部从甲搞到乙,回来的过程中还要骑马,最多一次带两匹马,之间的时间以用时多 矩阵找规律 面试题 一道微软面试题,考考你的智力.有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,这两个房间是分割开的,从一间里不能看到另一间的情况.现在要求受训者分别进这两房间一 一道经典的微软面试题有3个人去投宿,一晚300美元.三个人每人掏了100美元凑够300美元交给了老板.后来老板说今天优惠只要250美元就够了,拿出50美元命令服务生退还给他们,服务生偷偷藏起了20 微软模拟飞行X和微软模拟飞行10有何区别?如题 一道面试题:2012!结尾有多少个0? 一个屋子里有10根蜡烛,被风吹灭1跟,还有几根蜡烛?这是一个大公司的面试题.应该是什么 谁有IQ面试题Autodesk的 一道线性代数试题证明:任何一个秩为M的矩阵,必能表示成M个秩为1的矩阵之和