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

江苏10大网站建设公司seo网站关键词优化方法

江苏10大网站建设公司,seo网站关键词优化方法,做笑话网站,没有网站怎样做搜索引擎推广这道题我没有想到什么好的办法,直接暴力AC了,直接遍历两次矩阵,第一次遍历用两个向量分别记录出现0的行数和列数,第二次遍历就判断当前的元素的行数或者列数是否出现在之前的两个向量中,若出现了就直接置零&#xff0c…


这道题我没有想到什么好的办法,直接暴力AC了,直接遍历两次矩阵,第一次遍历用两个向量分别记录出现0的行数和列数,第二次遍历就判断当前的元素的行数或者列数是否出现在之前的两个向量中,若出现了就直接置零,否则就跳过。后面看了下空间复杂度为O(1)的解法,感觉这个思路不错,记录一下。
我们可以将第0行和第0列作为记录的标志位,例如matrix[5][6] == 0,我们就将matrix[0][6]matrix[5][0]置为0,经过一次遍历后,除了第0行和第0列的情况没有统计出来,其余的行和列都已经遍历结束并且打上标签,由于打标签会向第0行和第0列添加0,打完标签后无法判断其本身原本就包含0,因此在遍历矩阵打标签之前,我们需要遍历矩阵的第0行和第0列,如果他们本身就有0,我们就分别用两个变量记录下来,至此,我们先分别遍历了矩阵的第0行和第0列,再遍历了矩阵的其余行和列,这就遍历了一次矩阵,我们再遍历一次矩阵,从下标为1的行和列开始,对于matrix[i][j],如果matrix[0][j] == 0matrix[i][0] == 0,我们就直接将matrix[i][j]置零。遍历结束后,我们还需要对第0行和第0列进行处理,如果他们原本就包含0,则将整行或整列直接置零。这里依然是遍历两次数组,但是由于只进行了比较操作,而没有进行查找操作,程序耗时要比我之前暴力AC短得多。
下面分别是暴力AC代码(空间复杂度O(m + n))和空间复杂度O(1)的代码。

//暴力代码
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {vector<int> row;vector<int> column;for(int i = 0; i < matrix.size(); ++i){for(int j = 0; j < matrix[i].size(); ++j){if(matrix[i][j] == 0){row.emplace_back(i);column.emplace_back(j);}}}for(int i = 0; i < matrix.size(); ++i){for(int j = 0; j < matrix[i].size(); ++j){if(find(row.begin(), row.end(), i) == row.end() && find(column.begin(), column.end(), j) == column.end())continue;matrix[i][j] = 0;}}}
};
//空间复杂度O(1)代码
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {bool row_flag0 = false;   //判断第0行有没有0bool column_flag0 = false;  //判断第0列有没有0//遍历第0行for(int i = 0; i < matrix[0].size(); ++i){if(matrix[0][i] == 0){row_flag0 = true;break;}}//遍历第0列for(int i = 0; i < matrix.size(); ++i){if(matrix[i][0] == 0){column_flag0 = true;break;}}//遍历整个矩阵,在第0行和第0列标记0元素的分布情况for(int i = 1; i < matrix.size(); ++i){for(int j = 1; j < matrix[i].size(); ++j){if(matrix[i][j] == 0){matrix[i][0] = 0;  //在第0列的对应位置置零matrix[0][j] = 0;  //在第0行的对应位置置零}}}//开始置零for(int i = 1; i < matrix.size(); ++i){for(int j = 1; j < matrix[i].size(); ++j){if(matrix[i][0] == 0 || matrix[0][j] == 0)matrix[i][j] = 0;  }}//判断在打标记之前第0行本身有没有0if(row_flag0){for(int i = 0; i < matrix[0].size(); ++i)matrix[0][i] = 0;}//判断在打标记之前第0列本身有没有0if(column_flag0){for(int i = 0; i < matrix.size(); ++i)matrix[i][0] = 0;}}
};
http://www.dtcms.com/wzjs/9928.html

相关文章:

  • 威县做网站哪家便宜海外推广渠道都有哪些
  • 为什么不推荐免费建站百度关键词推广价格查询
  • 自己怎么做云购网站吗seo外贸公司推广
  • 上海企业网站模板建站哪家好4001688688人工服务
  • 网站建设流程是这样的 里面有很seo诊断分析工具
  • 个人网站可以做音乐吗在线seo短视频
  • 站内营销推广方式网站网络排名优化方法
  • 在线网站免费网站入口怎么seo网站排名
  • 昆明企业网站的建设下载一个百度导航
  • 网站定制设计价目表百度关键词规划师入口
  • 做区块链网站需要注意哪些市场营销推广方案
  • 用哪个语言做网站比较好网络营销专业
  • jq 网站模板谷歌浏览器下载手机版最新版
  • 装饰网站建设策划书深圳网络营销全网推广
  • 做网站的设计公司站长联盟
  • 梦幻创意网站建设网站建设公司
  • 算命网站怎么做哪个公司网站设计好
  • 做网站必须要有服务器吗免费的舆情网站入口在哪
  • 做正规小说网站软件开发公司排名
  • 新余市建设厅网站免费网络推广网站
  • 做网站主机电脑谷歌平台推广外贸
  • 汕头高端模板建站网络推广平台有哪些公司
  • 红河网站建设百度收录比较好的网站
  • 网站制作联盟今日广州新闻最新消息
  • 网站怎么做要多少钱营销推广方式有哪些
  • wordpress创建滑块页面seo优化
  • 台州网站建设费用现在做推广的新渠道有哪些
  • 国外手机设计网站推荐seo诊断站长
  • 建个购物网站要多少钱网坛最新排名
  • 阿里云esc 可以做几个网站上海网优化seo公司