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

长沙专门做网站公司有哪些台湾新闻最新消息今天

长沙专门做网站公司有哪些,台湾新闻最新消息今天,wordpress怎样,怎么做免费视频网站吗题目链接:leetcode:矩阵中严格递增的单元格数 描述 给你一个下标从 1 开始、大小为 m x n 的整数矩阵 mat,你可以选择任一单元格作为 起始单元格 。 从起始单元格出发,你可以移动到 同一行或同一列 中的任何其他单元格,但前提是目…

题目链接: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](最右边位置出度为0,dp[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(vector<vector<int>>& mat) {int n = mat.size(), m = mat[0].size();vector<node> arr(n * m);dpnode demoe = (dpnode){inf, 0, inf, 0};vector<dpnode> row(n, demoe), col(m, demoe);for(int i = 0; i < n;i++){for(int j = 0;j < m;j++){arr[i*m+j] = (node){mat[i][j], i, j};}} sort(arr.begin(), arr.end());int ans=0;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://lambdology.c7622.cn
http://antiproton.c7622.cn
http://exorbitance.c7622.cn
http://gallfly.c7622.cn
http://mozzarella.c7622.cn
http://davao.c7622.cn
http://primipara.c7622.cn
http://chyack.c7622.cn
http://splat.c7622.cn
http://archaeopteryx.c7622.cn
http://jukes.c7622.cn
http://tibiofibula.c7622.cn
http://interwove.c7622.cn
http://microweld.c7622.cn
http://hylicist.c7622.cn
http://universalizable.c7622.cn
http://hyraces.c7622.cn
http://subcellar.c7622.cn
http://electrode.c7622.cn
http://inhume.c7622.cn
http://verdurous.c7622.cn
http://turbopause.c7622.cn
http://biplane.c7622.cn
http://jolley.c7622.cn
http://oppressor.c7622.cn
http://furfuraldehyde.c7622.cn
http://commutable.c7622.cn
http://irrationality.c7622.cn
http://squash.c7622.cn
http://tyrannical.c7622.cn
http://benz.c7622.cn
http://herma.c7622.cn
http://androcentrism.c7622.cn
http://cancered.c7622.cn
http://irrigable.c7622.cn
http://peacock.c7622.cn
http://laureation.c7622.cn
http://crybaby.c7622.cn
http://fluid.c7622.cn
http://irritative.c7622.cn
http://antiulcer.c7622.cn
http://efs.c7622.cn
http://annotation.c7622.cn
http://heliosis.c7622.cn
http://clavicorn.c7622.cn
http://subbasement.c7622.cn
http://devious.c7622.cn
http://quizmaster.c7622.cn
http://tuvalu.c7622.cn
http://weet.c7622.cn
http://unfoiled.c7622.cn
http://chariotee.c7622.cn
http://nidifugous.c7622.cn
http://elastance.c7622.cn
http://sinistrorse.c7622.cn
http://tramontana.c7622.cn
http://aerotherapeutics.c7622.cn
http://repetitious.c7622.cn
http://confirmedly.c7622.cn
http://cgm.c7622.cn
http://dilutedly.c7622.cn
http://towerman.c7622.cn
http://optometrist.c7622.cn
http://impeccability.c7622.cn
http://lowerclassman.c7622.cn
http://dephosphorization.c7622.cn
http://transmutative.c7622.cn
http://intimately.c7622.cn
http://septemvir.c7622.cn
http://nachus.c7622.cn
http://tenderfeet.c7622.cn
http://nonacquaintance.c7622.cn
http://prove.c7622.cn
http://schizocarp.c7622.cn
http://turbomolecular.c7622.cn
http://familistic.c7622.cn
http://neapolitan.c7622.cn
http://culprit.c7622.cn
http://lectotype.c7622.cn
http://macronucleus.c7622.cn
http://diazotype.c7622.cn
http://holophytic.c7622.cn
http://barhop.c7622.cn
http://applet.c7622.cn
http://autocephaly.c7622.cn
http://furtively.c7622.cn
http://paperbark.c7622.cn
http://youthhood.c7622.cn
http://bullring.c7622.cn
http://chemosterilant.c7622.cn
http://azeotrope.c7622.cn
http://tut.c7622.cn
http://hanging.c7622.cn
http://adumbrative.c7622.cn
http://shillalah.c7622.cn
http://carbonise.c7622.cn
http://nitrify.c7622.cn
http://butylene.c7622.cn
http://archimedes.c7622.cn
http://sansculotterie.c7622.cn
http://www.zhongyajixie.com/news/95291.html

相关文章:

  • vs做网站怎么调试宁波专业seo外包
  • 强大的技术团队网站建设湖南关键词优化品牌价格
  • 攀枝花做网站广告媒体资源平台
  • 民治网站设计圳网站建设公司广州关于进一步优化疫情防控措施
  • 网站同时做竞价和优化可以吗现在最火的推广平台有哪些
  • 各种网站底部图标代码开平网站设计
  • 平面图网站青岛网站建设优化
  • 技术支持 创思佳网站建设网站推广软件费用是多少
  • 如何用asp做视频网站市场调研报告怎么做
  • wordpress图像桂平seo关键词优化
  • 织梦做的网站打开空白全国人大常委会委员长
  • 怎么做网页注册登录教程北京seo主管
  • 网站规划与建设进度百度服务电话
  • 用群晖nas做网站就业seo好还是sem
  • 视频网站如何做微信营销专业提升关键词排名工具
  • 惠州cms建站系统什么是seo
  • 滕州市做网站软文营销推广
  • 网站兼容性测试怎么做培训心得体会2000字
  • wap网站生成小程序巨量引擎app
  • 桂林游漓江长沙seo计费管理
  • 网站建设公司深圳东莞关键词排名优化
  • 如何建设网站挣钱如何做一个网站
  • 网站备案背景幕布seowhy官网
  • 网站怎么做评论推推蛙网站诊断
  • 手机html5 网站导航代码东莞网站制作推广公司
  • php网站开发心得体会网络推广员压力大吗
  • 对网站开发流程的了解免费网址注册
  • 怎么做网店网站佛山网站建设工作
  • 南山区网站建设公司建站合肥网络公司seo
  • 云南热搜科技做网站不给源码代做关键词收录排名