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

做企业网站需要资质吗安徽网新科技网站建设介绍

做企业网站需要资质吗,安徽网新科技网站建设介绍,用自己的电脑做视频网站吗,坪山网站建设题目链接#xff1a;leetcode:矩阵中严格递增的单元格数 描述 给你一个下标从 1 开始、大小为 m x n 的整数矩阵 mat#xff0c;你可以选择任一单元格作为 起始单元格 。 从起始单元格出发#xff0c;你可以移动到 同一行或同一列 中的任何其他单元格#xff0c;但前提是目…题目链接leetcode:矩阵中严格递增的单元格数 描述 给你一个下标从 1 开始、大小为 m x n 的整数矩阵 mat你可以选择任一单元格作为 起始单元格 。 从起始单元格出发你可以移动到 同一行或同一列 中的任何其他单元格但前提是目标单元格的值 严格大于 当前单元格的值。 你可以多次重复这一过程从一个单元格移动到另一个单元格直到无法再进行任何移动。 请你找出从某个单元开始访问矩阵所能访问的 单元格的最大数量 。 返回一个表示可访问单元格最大数量的整数。 其中 m mat.length n mat[i].length 1 m, n 10^5 1 m * n 10^5 -10^5 mat[i][j] 10^5 输入 mat [[3,1,6],[-9,5,7]] 输出 4 PS之前有事漏做了ε(´ο*)))唉今天补一下。 思路 初看题目位置(i, j)只能移动到同行或同列中值严格比他大的位置。因此可以将这个矩阵根据每个位置间的可到达性建立一张拓扑图所求的得到最大单元格访问数量的路线必然是从拓扑图中某一个入度为0的位置出发到某一个出度为0的位置结束。根据这个特性我们可以从入度为0或者出度为0的位置出发来计算最大单元格访问数量。 在这里我采用了从出度为0出发的思路个人感觉更“顺”一点。 设从位置(i , j)出发的最大单元格访问数为dp[i][j](i, p)可表示所有同行中(i, j)可到达的位置(q, j)可表示同列中(i , j)可到达的位置。那么dp[i][j] max(max(dp[i][p]1), max(dp[q][j]1) ) 。从这里可以看出要得到dp[i][j]我们要算出同行中所有的dp[i][p]和同列中所有的dp[q][j]所以我们要从拓扑图的右边往左边计算dp[i][j]最右边位置出度为0dp[i][j] 1。 如果能顺利建图那么问题就简单了但是这里矩阵可能出现一维的情况那么建图的复杂度就为O(n^2)对于n最大为1e5的情况显然会超时所以还得优化思路。 不能建图那就继续从小的只能往大的位置走这一特性入手并从整体出发。只要我先计算了所有比位置(i, j)值大的位置的dp值那么计算dp[i][j]所需的依赖——dp[i][p]和dp[q][j]都已经算好了。现在有了dp[i][p]和dp[q][j]就剩下max(dp[i][p])和max(dp[q][j])的计算。若每次都采用遍历的方法去计算max(dp[i][p])和max(dp[q][j])总复杂度又回到了O(n^2)仍需优化。 以max(dp[i][p])的计算为例若有两个位置(i, j0)和(i, j1), 且mat[i][j0] mat[i][j1] 1(只要mat[i][j1]是第i行中仅次于mat[i][j0]的值就行了)目前已知dp[i][j0]那么(i, j1)的max(dp[i][p]) dp[i][j0] 1。因此我们可建立两个数组一个保存每行的最大dp值一个保存每列的最大dp值。虽然我们是按mat值从大到小计算dp值能保证不少算东西但行或列中可能会存在相同的值会多算东西。所以对于每行/每列的最大dp值需要存两个一个存最大dp值一个存次大dp值且取得两个值所在位置的mat值不能相同。这样就只需要在计算时比较一下mat[i][j]是否等于最大值所在mat值就行了若不等于则选择最大dp值反之选次大dp值。 struct node {int val, x, y;bool operator (const node o)const{return val o.val;} }; struct dpnode {int val_0, cnt_0;int val_1, cnt_1;void update(int val, int cnt){if(val val_0){if(cnt cnt_0){cnt_0 cnt;}}else {if(cnt cnt_0){cnt_1 cnt_0;val_1 val_0;cnt_0 cnt;val_0 val;}else if(cnt cnt_1){cnt_1 cnt;val_1 val;}}} }; const int inf -1e5 - 5; class Solution { public:int maxIncreasingCells(vectorvectorint mat) {int n mat.size(), m mat[0].size();vectornode arr(n * m);dpnode demoe (dpnode){inf, 0, inf, 0};vectordpnode row(n, demoe), col(m, demoe);for(int i 0; i n;i){for(int j 0;j m;j){arr[i*mj] (node){mat[i][j], i, j};}} sort(arr.begin(), arr.end());int ans0;int tmp_row, tmp_col;for(int i 0;i arr.size();i){if(row[arr[i].x].val_0 ! arr[i].val){tmp_row row[arr[i].x].cnt_0 1;}else tmp_row row[arr[i].x].cnt_1 1;if(col[arr[i].y].val_0 ! arr[i].val){tmp_col col[arr[i].y].cnt_0 1;}else tmp_col col[arr[i].y].cnt_1 1;if(tmp_col tmp_row) tmp_row tmp_col;row[arr[i].x].update(arr[i].val, tmp_row);col[arr[i].y].update(arr[i].val, tmp_row);}for(int i 0;i n;i){ans max(ans, row[i].cnt_0);}for(int j 0;j m;j){ans max(ans, col[j].cnt_0);}return ans;} }; 若有什么错误欢迎指正^ _ ^ 。
http://www.hkea.cn/news/14493504/

相关文章:

  • 金融行业网站建设创建网页步骤
  • 优秀网站设计案例中国云南电商网站开发
  • wordpress mip站招投标网站官网
  • 广州知名网站建设网页设计服务图片瀑布流网站
  • 网站如何备案 流程图软件开发用什么工具
  • 学校网站设计他达拉非是什么
  • app开发网站建设公司哪家好自己做同城购物网站
  • 一个专做特卖的网站四川城乡建设厅建筑特种作业证书
  • 佛山如何建立网站wordpress积分搜索
  • 写作网站大全属于网页制作平台的是
  • 济南做html5网站公司部门聚餐计入什么科目
  • 完全免费网站源码网站标题堆砌关键词
  • 巢湖网站建设临沂网站建设那家好
  • 佛山自定义网站建设网站开发工期安排表
  • 做网站需要多少空间网站建设qianhaiyou
  • 义乌外贸建网站宠物交易网站开发
  • 黑龙江建设厅网站 孙宇韩国女足出线
  • 青岛企业网站seo技巧曹县汽车网站建设
  • 知名室内设计网站国内网站模板
  • 浙江建设招生网站中劳网做网站
  • 石家庄专门做网站asp网站开发四酷全书
  • php手机网站开发工具个人办公室装修效果图
  • 网站改版数据来源表改怎么做如何卸载和重装wordpress
  • 个人网站做短视频网店模板
  • 电商论坛网站模板wordpress建站速度提升
  • 御花园网站建设公司建设网站推广广告图
  • 城市网站改版建设怎么开网店详细步骤教程
  • 做漆包线的招聘网站wordpress swatch
  • 怎么做自己网站dw做的网站如何上传云服务
  • 陵川网站建设重庆峰宇园林建设有限公司网站