题目:有一个矩阵(10*10),元素值只能为0或1,现在写一个函数判断一下有没有一行都为1,且有一列都为0(除了该行的这个元素为1外)。现要求程序只需要扫描该矩阵一遍,即可得出结果。
来源:互联网,据说出自微软面试题。
解答:
不考虑题目最后一句要求的情况下,最直接的方法如下:
可见,这个算法在每找到一行元素都是1后,会对整个矩阵进行再扫描,理论上对mxn矩阵操作的时间复杂度为O(mn+mxmxn)=O(mxmxn)。但是考虑到实际情况,肯定是不会到这个上限,但是已经效率很低了。
这时可以考虑,另设一个bool ColAllZero[n]数组,初始为true。在第二层循环中扫描第i行是否都是1时,如果出现该行j列元素为1,即标记ColAllZero[j]为false。
这样只需两层循环,一次扫描,算法如下。
特别注意,虽然该算法仍是三重循环,但分析其时间复杂度就会发现是O(mn),而非O(mmn)或O(mnn)。因为在第二层循环中不满足要求但值为1的元素所在的列都会被ColAllZero标记,这些被标记为false的列在第三重循环中不会再被访问。因此时间复杂度为O(mn)。
-
分享到:
相关推荐
算法与数据结构实验报告——树及其应用.docx算法与数据结构实验报告——树及其应用.docx算法与数据结构实验报告——树及其应用.docx算法与数据结构实验报告——树及其应用.docx算法与数据结构实验报告——树及其应用...
在机器学习和深度学习中,矩阵数组也是一个非常重要的概念,因为许多算法都需要对数据进行矩阵运算。 除此之外,矩阵数组还可以用于解决线性代数问题,例如解线性方程组、求特征值和特征向量等。在工程和科学领域中...
算法与数据结构综合应用——典型竞赛试题分析
本人是南京航空航天大学的学生,我们的一个计算机软件基础大作业是编写4个程序,分别是约瑟夫斯问题、停车场管理、带权图的最小生成树提取、几种排序算法的比较。希望能够帮助到大家,尤其是南航的学弟学妹们!工程...
用数据结构与算法 实现的数组 用一维数组定义用 二维数组 定义三维数组 用模版
数据结构——矩阵全文共7页,当前为第1页。数据结构——矩阵全文共7页,当前为第1页。 数据结构——矩阵全文共7页,当前为第1页。 数据结构——矩阵全文共7页,当前为第1页。 软件学院 上机实验报告 课程名称: 数据...
数据结构、算法与应用——C++语言描述.rar
面试题总结:数组和链表的区别 数组和链表.pdf
php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵...
数据结构——————KMP算法
C语言;数据结构中的连续存储和离散存储的算法编程;算法主要包括动态数组的建立,以及元素的插入,删除;链表的创建,遍历,插入,删除,排序等
数据结构——数组及广义表.cpp
这份资料里面讲解的很清楚详细,易懂,对正在学习编程的同学特别是对正在找工作的同学非常有帮助。
本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一...
有JAVA数据结构和算法的教程 还有算法题 加部分面试题 从别人那下的 在这一次给了 希望能帮到大家
数据结构与算法 数据结构与C语言 第4章 串、数组和广义表(共66页).ppt 数据结构与算法 数据结构与C语言 第5章 树和二叉树(共95页).ppt 数据结构与算法 数据结构与C语言 第6章 图(共126页).ppt 数据结构与算法 ...
数据结构与算法课设——医院候诊管理系统.docx数据结构与算法课设——医院候诊管理系统.docx数据结构与算法课设——医院候诊管理系统.docx数据结构与算法课设——医院候诊管理系统.docx数据结构与算法课设——医院...
《数据结构与算法——C#语言描述,C# 数据结构 源代码 第一本C#数据结构的书
数据结构与算法——看病排队候诊问题.docx
——代码完成于2021-11-12 整体思路: 用两个数组分别模拟 A->B 和B->A间通讯的信道。A、B两主机各自拥有独立线程。线程move用来模拟信道中信号的移动。线程show用于打印信道。其中线程move和show detach()后作为...