其他分享
首页 > 其他分享> > 力扣 OJ 1267. 统计参与通信的服务器

力扣 OJ 1267. 统计参与通信的服务器

作者:互联网

题目:

这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。

如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。

请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

 

示例 1:

输入:grid = [[1,0],[0,1]]
输出:0
解释:没有一台服务器能与其他服务器进行通信。
示例 2:

输入:grid = [[1,0],[1,1]]
输出:3
解释:所有这些服务器都至少可以与一台别的服务器进行通信。
示例 3:

输入:grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1]]
输出:4
解释:第一行的两台服务器互相通信,第三列的两台服务器互相通信,但右下角的服务器无法与其他服务器通信。
 

提示:

m == grid.length
n == grid[i].length
1 <= m <= 250
1 <= n <= 250
grid[i][j] == 0 or 1

 

 

代码:

class Solution {
public:
	int countServers(vector<vector<int>>& grid) {
		if (grid.empty() || grid[0].empty())return 0;
		int m = grid.size();
		int n = grid[0].size();
		int ans1[300] = { 0 };
		int ans2[300] = { 0 };
		for (int i = 0; i < m; i++)for (int j = 0; j < n; j++)
		{
			ans1[i] += grid[i][j], ans2[j] += grid[i][j];
		}
		int ans = 0;
		for (int i = 0; i < m; i++)for (int j = 0; j < n; j++)
		{
			ans += (grid[i][j] && (ans1[i]>1 || ans2[j] > 1));
		}
		return ans;
	}
};

 

csuzhucong 发布了1221 篇原创文章 · 获赞 682 · 访问量 172万+ 他的留言板 关注

标签:OJ,int,1267,通信,力扣,++,grid,服务器进行,服务器
来源: https://blog.csdn.net/nameofcsdn/article/details/104179189