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

雄安 网站建设上海专业高端网站建设服务

雄安 网站建设,上海专业高端网站建设服务,金华做企业网站公司,网站开发持续更新题目描述#xff1a; 编写一个高效的算法来搜索 m*n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例1#xff1a; 输入#xff1a;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.lengthn matrix[i].length1 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 mmatrix.length;int nmatrix[0].length;int i0;int jn-1;while(imj0){if(matrix[i][j]target) return true;if(matrix[i][j]target){j--;} else{i;}}return false; } } 以上算法在官方题解中称为Z字形查找Z字形查找每次可以排除一行或一列的元素时间复杂度为O(mn)空间复杂度为O(1)。 另一种理解方式——二叉搜索树 如下图所示我们将矩阵逆时针旋转 45° 并将其转化为图形式发现其类似于 二叉搜索树 即对于每个元素其左分支元素更小、右分支元素更大。因此通过从 “根节点” 开始搜索遇到比 target 大的元素就向左反之向右即可找到目标值 target 。
http://www.hkea.cn/news/14431196/

相关文章:

  • 做网站每个月可以赚多少钱wordpress音频播放不了
  • 中信建设有限责任公司官方网站快速制作网站的方法
  • dedecms网站关键词厦门建设局公维金网站
  • 公司做网站的费用用途写什么wordpress企业末班
  • google seo网站 被k专业网站定制设计公司
  • 西部数码网站打不开国际论坛网站模板
  • 做国际网站多少钱太原不错的互联网公司
  • 做网站有必要用wordpress景德镇网站建设景德镇
  • 金泉网做网站电话老薛主机 wordpress
  • wordpress 选择题太仓seo网站优化软件
  • 个人主页网站制作教程国外做自动化网站
  • 怎么做网站的快照怎么和客户推广说网站建设语
  • icp备案系统网站网站的商业授权
  • 陕西城乡建设部网站张家港设计公司
  • 怎么建个免费英文网站网站建设襄阳
  • 南通网站优化找哪家怎么在网站上添加qq
  • 专业的聊城做网站费用网站开发做什么费用
  • 装修广告做哪个网站最好看关键词筛选工具
  • 做网站寄生虫网站站长英语
  • 自己的网站怎么做淘宝联盟电脑系统做的好的网站
  • 天津网站建设优化企业潍坊免费做网站
  • 乔括云智能建站阜新网站制作
  • 淘客必须做网站桂林seo哪家好
  • 动漫设计工作室网站建设公司网站备案信息安全承诺书
  • 重庆制作网站公司哪家好即在市场中确立自己的位置
  • 广州网站建设公网站怎么做网盘
  • 免费那个网站免费tk域名注册接口
  • 怎么做外贸网站网站建设与维护制作网页
  • 昆明seo网站排名网站建设排版规定
  • 网站开发流程属于制作与开发跨境网站建设