当前位置: 首页 > news >正文

无需本金十分钟赚800兰州seo培训

无需本金十分钟赚800,兰州seo培训,网站历史频道怎么做,网站开发有前途吗原题 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其…

原题

这里有一幅服务器分布图,服务器的位置标识在 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

来源:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

解题思路

我们把题目读懂之后,就会发现题目要求我们统计每行每列中1大于等于2个行列上1的个数。一个简单的解题方法就是统计每行每列中1的个数,然后遍历每个值是1的点,看看所在行列上1的个数是否大于等于2。于是我们得到官方题解的实现:

class Solution {
public:int countServers(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();unordered_map<int, int> rows, cols;for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (grid[i][j] == 1) {++rows[i];++cols[j];}}}int ans = 0;for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (grid[i][j] == 1 && (rows[i] > 1 || cols[j] > 1)) {++ans;}}}return ans;}
};作者:力扣官方题解
链接:https://leetcode.cn/problems/count-servers-that-communicate/solutions/101819/tong-ji-can-yu-tong-xin-de-fu-wu-qi-by-leetcode-so/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

优化题解

官方题解需要遍历两次全部的点,有没有优化的空间呢?其实我们遍历每行的时候,如果该行1的个数大于等于2,那么全都是符合结果的点。如果刚好等于1,那么需要后续判断这一列上1的点的个数是否大于等于2。因此我们可以先收集起来,最后判断,这样我们第二轮的时间复杂度可以降低到O(n)。基于这个思路,我们的优化版本:

class Solution {
public:int countServers(vector<vector<int>>& grid) {int m = grid.size();int n = grid[0].size();unordered_map<int, int> cols;int ans = 0,col = 0, rows=0;vector<int> srows;for(int i = 0; i < m;i++){rows=0;for(int j =0;j< n;j++){if(grid[i][j] == 1){++rows;++cols[j];col = j;}}if(rows >= 2){ans+=rows;}else if(rows == 1){srows.emplace_back(col);}}for(int &j:srows){if(cols[j]>=2){++ans;}}return ans;}
};

http://www.mnyf.cn/news/47812.html

相关文章:

  • 利用网盘做网站网站建设7个基本流程
  • html网站支付链接怎么做的如何建立免费个人网站
  • 深圳建站公司兴田德润电话多少外贸推广营销公司
  • 郑州专业网站制作建设怎样做网站卖自己的产品
  • wordpress简约新闻自媒体主题seo公司厦门
  • 网站制作九江网推广公司
  • 网站建设 选中企动力电商网站链接买卖
  • 做游戏模板下载网站有哪些sem竞价托管多少钱
  • 上海市网站建设公叿深圳网络推广软件
  • 网页设计图片刷新随机更换手机端seo
  • 有自己团队做网站上线多久网站为什么要seo?
  • 百度广告联盟网站免费网络营销平台
  • 如果做动态网站开发 以下35个成功的市场营销策划案例
  • 建筑专业名词网站台州seo
  • 杭州自适应网站建设全国唯一一个没有疫情的城市
  • 湖南人文科技学院seo排名赚挂机赚钱软件下载
  • 互动吧网站模板百度知道首页登录入口
  • 保定专业网站建设关键词优化推广排名
  • 昆山网站建设哪家好免费营销软件网站
  • 河池公司做网站英语seo
  • 做响应式网站兼容哪几个尺寸全球十大网站排名
  • 西藏做网站济南谷歌推广
  • 网站快速排名推广引流工具
  • 怎么在自己做的网站上发视频教程制作链接的app的软件
  • 平安好车主app下载官方网站下载如何做电商赚钱
  • wordpress网站推广主题百度网站推广费用
  • ai里做的图片方网站上不清楚网络营销推广方法
  • 做网站需要多少钱 百度提供搜索引擎优化公司
  • 上海外贸推广建站搜狗首页排名优化
  • 怎样做士产品销售网站百度爱采购平台登录