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

帮别人做网站要投资吗江北关键词优化排名seo

帮别人做网站要投资吗,江北关键词优化排名seo,酒店建设网站的优势有哪些,手机百度网页版登录入口统计全1子矩阵个数 思路1:首先考虑深度优先模拟,从【0,0】出发向下、右扩展,符合条件res,最后输出res,比较直观,但重复进行了大量节点遍历操作,时间复杂度较高,数据量大时…

统计全1子矩阵个数

在这里插入图片描述
思路1:首先考虑深度优先模拟,从【0,0】出发向下、右扩展,符合条件res++,最后输出res,比较直观,但重复进行了大量节点遍历操作,时间复杂度较高,数据量大时会超时

class Solution {unordered_set<int>set;int res=0;void get(vector<vector<int>>& mat,int start_r,int start_c,int row,int col){if(row>=mat.size()||col>=mat[0].size()||set.count(start_r+(start_c+((row+col*151)*151))*151)) return;for(int i=start_r;i<=row;i++){if(!mat[i][col]) return;}for(int i=start_c;i<=col;i++){if(!mat[row][i]) return;}res++;set.insert(start_r+(start_c+((row+col*151)*151))*151);get(mat,start_r,start_c,row+1,col);get(mat,start_r,start_c,row,col+1);}
public:int numSubmat(vector<vector<int>>& mat) {for(int i=0;i<mat.size();i++){for(int j=0;j<mat[0].size();j++){get(mat,i,j,i,j);}}return res;}
};

思路2:单考虑行或列时每增加1个1,结果增加 行或列1个数+1,那么多行多列时每增加一行或一列增加(1+2+…+n)*(m+1),加列时:n为行数,m为原来列数,实际上情景就是第一个图的拓展,只不过矩形中的1实际上是长度相等的全1矩形
在这里插入图片描述

因而仅需要使用一个二维数组tmp存储target[i][j]及前有几个连续的1,然后从上到下加上min(tmp[i][j],tmp_pre_min)即可
在这里插入图片描述

class Solution {
public:int numSubmat(vector<vector<int>>& mat) {int n = mat.size();int m = mat[0].size();vector<vector<int> > row(n, vector<int>(m, 0));for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {if (j == 0) {row[i][j] = mat[i][j];} else if (mat[i][j]) {row[i][j] = row[i][j - 1] + 1;}else {row[i][j] = 0;}}}int ans = 0;for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {int col = row[i][j];for (int k = i; k >= 0 && col; --k) {col = min(col, row[k][j]);ans += col;}}}return ans;}
};

单调栈优化后代码:

class Solution {
public:int numSubmat(vector<vector<int>>& mat) {int n = mat.size();int m = mat[0].size();vector<vector<int> > row(n, vector<int>(m, 0));for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {if (j == 0) {row[i][j] = mat[i][j];} else if (mat[i][j]) {row[i][j] = row[i][j - 1] + 1;}else {row[i][j] = 0;}}}int ans = 0;for (int j = 0; j < m; ++j) { int i = 0; stack<pair<int, int> > Q; int sum = 0; while (i <= n - 1) { int height = 1; while (!Q.empty() && Q.top().first > row[i][j]) {// 弹出的时候要减去多于的答案sum -= Q.top().second * (Q.top().first - row[i][j]); height += Q.top().second; Q.pop(); } sum += row[i][j]; ans += sum; Q.push({ row[i][j], height }); i++; } } return ans;}
};
http://www.yayakq.cn/news/184834/

相关文章:

  • 菏泽市住房和城乡建设局网站国内一家做国外酒店团购的网站
  • 住房和城乡建设部课题网站花都网站(建设信科网络)
  • 网站建设的公司这个网站做中英文切换
  • 设计门户网站装修设计培训机构
  • 深圳网站优化计划域名购买哪个网站好
  • 湖州网站设计公司网站维护中页面模板
  • 英语培训机构网站建设策划书网站推广营销服务
  • 网站建设建站知识微信平台推广方法
  • 做的好的微信商城网站黄页网怎么样
  • 专业网站开发开发网站项目评价
  • 网站的导航栏设计文本网站seo基础优化
  • 网站建设需要注意的关键细节网站建设接私活平台
  • dw可以做视频网站么做网站制作
  • 体验营销案例网站大图片优化
  • 网站建设需求调查问卷wordpress word文档
  • 上海网站建设广告语广州互联网公司排行榜
  • 网站下载下来怎么做后台长沙企业seo优化
  • 网站开发用什么网站html 教程
  • 网站开发有哪些方向北京网站建设首页
  • 一半招聘网站海报格式都怎么做山东聊城建设学校网站
  • 无人机网站建设深圳注册公司费用
  • 国美网站建设的目的nginx wordpress样式丢失
  • 深圳移动网站建站什么样的网站需要服务器
  • seo如何推广网站广东seo网站设计多少钱
  • 贵州省建设厅省外企业官方网站桐城市住房与建设网站
  • 安丘住房建设局网站北京网站seo优化排名公司
  • 织梦网站模板后台密码找回瑞安学校网站建设
  • 网站浮动窗口怎么设置网站建设+设计那种连接线厂家
  • 南水北调建设管理局网站网站开发费用属于哪种无形资产
  • 提交网站到百度网站的展现形式