OD 算法题 B卷【矩阵稀疏扫描】

[复制链接]
发表于 昨天 10:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
矩阵稀疏扫描



  • 如果矩阵中的很多系数都为零,则为稀疏矩阵,给定一个矩阵,如果某行、列存在0的个数超出(包含)了行宽、列宽的一半(整除),则认为该行、列为稀疏的;
输入描述:
第一行输入m, n 表现行、列数;
后m行输入每行的数据;
输出描述:
第一行输出稀疏的行数;
第二行输出稀疏的列数;
示例1
输入:
3 3
1 0 0
0 1 0
0 0 1
输出:
3
3
示例2
输入:
5 3
-1 0 1
0 0 0
-1 0 0
0 -1 0
0 0 0
输出:
5
3
python实现:


  • 计算每行、列0的总个数,并与行、列的一半进行比力;
  • 时间复杂度                                        O                            (                                       n                               2                                      )                                  {O(n^2)}                     O(n2)
  1. data = [int(x) for x in input().split(" ")]
  2. m = data[0]
  3. n = data[1]
  4. rowZeroCount = [0 for x in range(m)]
  5. colZeroCount = [0 for x in range(n)]
  6. for i in range(m):
  7.     input_arr = [int(x) for x in input().split(" ")]
  8.     for j in range(n):
  9.         if (input_arr[j] == 0):
  10.             rowZeroCount[i]+=1
  11.             colZeroCount[j]+=1
  12. res1 = 0
  13. for i in range(m):
  14.     if rowZeroCount[i] >= int(n/2):
  15.         res1+=1
  16. print(res1)
  17. res2= 0
  18. for i in range(n):
  19.     if colZeroCount[i] >= int(m/2):
  20.         res2+=1
  21. print(res2)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-6-27 19:57 , Processed in 0.243734 second(s), 33 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表