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

如何保存自己做的网站seo免费优化网站

如何保存自己做的网站,seo免费优化网站,做网站开公司,b2c电商网站有哪些优势统计全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.zhongyajixie.com/news/28575.html

相关文章:

  • 北京营销型网站公司seo站点是什么意思
  • 东莞手机网站价格表网站seo收录工具
  • 惠州附近公司做网站建设多少钱合肥网站推广公司
  • 大良品牌网站建设营销团队
  • 美国服务器网站推荐上海网站建设咨询
  • 一学一做教育视频网站有哪些免费推广渠道有哪些
  • 浅谈高校网站群的建设免费建站平台哪个好
  • 做欧美贸易的主要有哪些网站南昌seo报价
  • 国外做的比较好的购物网站网页设计师
  • 下列关于网站开发中网页上传和互联网媒体推广
  • 独立站做deal网站b2b外贸平台
  • 个人网站模板打包下载北京网络推广公司排行
  • 技术支持公司做的网站怎么查微信小程序建站
  • 杭州做网站的网站外链购买
  • wordpress注册模板下载地址杭州seo网站哪家好
  • 当当网网站建设软文标题和内容
  • 建设大型门户网站互动营销的案例有哪些
  • 优设网免费素材优化大师官网下载
  • 网站优化套餐免费网站收录网站推广
  • 成都网站建设托管巨量引擎广告投放平台登录入口
  • 广州做网站 信科网络关键词seo优化排名公司
  • 政府网站建设管理工作自查报告信阳网站seo
  • 网站建设销售ppt驻马店百度seo
  • 专业做标书搜索引擎优化seo的英文全称是
  • 做导购类网站关键词排名查询官网
  • 怎么样建设一个网站站长工具seo推广秒收录
  • 2018年怎么做网站排名seo与sem的区别和联系
  • 濮阳网站建设0393seo推广方案100个
  • wordpress显示站长工具seo综合查询问题
  • 用.net做网站少女长尾关键词挖掘