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

制作网页时不能选用的照片格式优化大师下载安装免费

制作网页时不能选用的照片格式,优化大师下载安装免费,河南网站优化外包服务,wordpress 源码详解题目描述: 编写一个高效的算法来搜索 m*n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,2…

题目描述:

编写一个高效的算法来搜索 m*n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例1:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例 2:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= n, m <= 300
  • -10^9 <= matrix[i][j] <= 10^9
  • 每行的所有元素从左到右升序排列
  • 每列的所有元素从上到下升序排列
  • -10^9 <= target <= 10^9

解题思路:

首先最简单的办法就是暴力法直接遍历数组判断target是否出现,时间复杂度为O(mn),没有利用到这个题目矩阵的特点,显然这不是最优解。

根据矩阵 "每行的所有元素从左到右升序排列,每列的所有元素从上到下升序排列"的特点,容易想到可以利用二分法查找每一行或每一列来判断target是否出现,时间复杂度为O(mlogn)或O(nlogm)。

那么还有没有更好的办法呢?

仔细观察示例1中的矩阵,用红线标出每行可能出现target(5)的位置

标出示例2矩阵可能出现target(20)的位置

可以发现红线把矩阵分隔成了两块区域,左边区域元素都小于target,右边区域元素都大于target,那么不管是左边区域还是右边区域都不可能会出现target,所以只要想办法遍历矩阵红线标记位置,其他位置就不用去遍历。

算法流程:

1.可以选矩阵的一角作为起点,选右上角(0,n-1)为起点开始遍历,元素matrix[i][j]:

  • matrix[i][j]小于target,因为每行元素从左到右是升序,左边元素一定比matrix[i][j]小,所以应该往下搜索,i增加1。
  • matrix[i][j]等于target返回true。
  • matrix[i][j]大于target,因为每列从上到下是升序,下边元素一定比matrix[[i][j]大,所以应该往左搜索,j减少1。

2.若i或j出界,未查找到target,返回false。

以下是算法Java实现:

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m=matrix.length;int n=matrix[0].length;int i=0;int j=n-1;while(i<m&&j>=0){if(matrix[i][j]==target)    return true;if(matrix[i][j]>target){j--;} else{i++;}}return false;  }
}

以上算法在官方题解中称为"Z字形查找",Z字形查找每次可以排除一行或一列的元素,时间复杂度为O(m+n),空间复杂度为O(1)。

另一种理解方式——二叉搜索树

如下图所示,我们将矩阵逆时针旋转 45° ,并将其转化为图形式,发现其类似于 二叉搜索树 ,即对于每个元素,其左分支元素更小、右分支元素更大。因此,通过从 “根节点” 开始搜索,遇到比 target 大的元素就向左,反之向右,即可找到目标值 target 。

http://www.tj-hxxt.cn/news/51354.html

相关文章:

  • 北京度seo排名广州百度搜索排名优化
  • 如何提高网站打开速度百度推广系统营销平台
  • 公司做网站有什么用竞价开户
  • 常州经开区建设局网站站内优化怎么做
  • 哪一个网站做专栏作家好点企业网络推广方案
  • 南京html5网站建设百度站长工具seo查询
  • asp语言网站建设seo专员
  • 如何判断一个网站的价值免费大数据查询
  • 线上如何做推广沧州网站优化公司
  • wap购物网站模板下载互联网营销师培训内容
  • 怎么做公司内网网站google建站推广
  • 78建筑挂靠排名优化课程
  • 昆明做网站找天度seo门户网站建设方案
  • 制作网站公司 可以要求后续修改吗google登录
  • 网站建设 淄博 兼职营销是什么意思
  • 网站安全证书有问题如何解决百度统计代码安装位置
  • 网站开发课程论文热搜词排行榜关键词
  • 网站开发公司商业计划书百度推广按效果付费是多少钱
  • 章丘建设局网站网站建设加推广优化
  • 动态网站设计的要求揭阳百度seo公司
  • wordpress 机械主题百度seo效果怎么样
  • 广州迅优网站建设公司佛山网站搜索排名
  • 做企业网站的意义凡科网站官网
  • 哪个网络公司做网站好点人民网疫情最新消息
  • 典型的网站开发人员网址域名查询
  • 优秀企业网站建设哪家服务好成都进入搜索热度前五
  • 潍坊仿站定制模板建站google安卓版下载
  • 自己做的网站绑定域名姓名查询
  • 电子商务网站建设的步骤一般为网络营销企业网站优化
  • 做毕业设计免费网站建设沈阳seo公司