240. 搜索二维矩阵 II
二维数组搜索
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
示例:
现有矩阵 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。
给定 target = 20,返回 false。
var searchMatrix = function(matrix, target) {
for(let nums of matrix){
let low = 0
let high = nums.length-1
while(low <= high){
let mid = parseInt((low+high)/2)
if(target===nums[mid]){
return true
}else if(target<nums[mid]){
high = mid-1
}else if(target>nums[mid]){
low = mid+1
}else {
break;
}
}
}
return false
};
提交后通过

提交后查看优质解答
每一行都是从左到右升序,上到下升序,因此右上角的值是这一行中最大,这一列中最小的值;根据这个思路也可以从左下角开始,左下角的值是这一行中最小,这一列最大的值;
这里采用从右上角开始查找的方法,当target>当前值,向下查找,当target<当前值,向左查找,直到结束
查找范围应该是 纵向查找的值不大于行数 横向查找的值不小于每行包含的元素
第一次提交的时候没有处理特殊情况,因此在前面加上对 “[]” 、“[[]]”这两个测试用例的特殊处理之后提交通过了。
var searchMatrix = function(matrix, target) {
if(!matrix.length) return false
if(!matrix[0].length) return false
let row = 0
let col = matrix[0].length-1
while(row< matrix.length && col>=0){
if(target === matrix[row][col]){
return true
}else {
target > matrix[row][col]?row++:col--
}
}
return false
};

240. 搜索二维矩阵 II的更多相关文章
- Leetcode之二分法专题-240. 搜索二维矩阵 II(Search a 2D Matrix II)
Leetcode之二分法专题-240. 搜索二维矩阵 II(Search a 2D Matrix II) 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵 ...
- LeetCode 240. 搜索二维矩阵 II(Search a 2D Matrix II) 37
240. 搜索二维矩阵 II 240. Search a 2D Matrix II 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性 ...
- Java实现 LeetCode 240 搜索二维矩阵 II(二)
240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. ...
- Leetcode 240.搜索二维矩阵II
搜索二维矩阵II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有 ...
- 【LeetCode】 240. 搜索二维矩阵 II
题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 mat ...
- LeetCode 240——搜索二维矩阵 II
1. 题目 2. 解答 2.1. 方法一 从矩阵的左下角开始比较 目标值等于当前元素,返回 true: 目标值大于当前元素,j 增 1,向右查找,排除掉此列上边的数据(都比当前元素更小): 目标值小于 ...
- LeetCode 240 - 搜索二维矩阵 II
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列.每列的元素从上到下升序排列.示例: 现有矩阵 matrix 如 ...
- LeetCode 240. 搜索二维矩阵 II(Search a 2D Matrix II)
题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 m ...
- 240.搜索二维矩阵II
从左下角位置开始搜索 时间复杂度:O(行数+列数). 想法有点像二分法,大了往一个方向找,小了往另一个方向找.由于矩阵横向和纵向都是递增,如果从(0,0)位置开始找,往右和往下都是增大,因此不知道实际 ...
随机推荐
- ubuntu配置telnet服务
1.安装xinetd 以及telnetd #:~$ sudo apt-get install xinetd telnetd 2.配置文件(若文件不存在就手动添加文件和相应配置信息) 1): #:~$ ...
- 编译nginx错误:make[1]: *** [/pcre//Makefile] Error 127
--with-pcre=DIR 是设置源码目录,而不是编译安装后的目录.
- Java中关于Servlet中请求中文乱码及文件下载
1,Servlet请求响应中文乱码问题 package com.demo.servlet; import java.io.PrintWriter; import java.io.IOException ...
- 关于keil不同容量和不同引脚大小的编译以及下载出错问题
如果遇到这个问题一般可能有四个原因(以STM32F103C8T6为例) 1.芯片型号没有选对 2.startup文件可能没有选对,startup文件常用的分为3种,startup_stm32f10x_ ...
- js实现全选、全不选、反选的功能
<!DOCTYPE html> <html> <head> <META charset="utf-8"/> <link rel ...
- 基于Python在MacOS上安装robotframework-ride
基于Python在MacOS上安装robotframework-ride https://www.jb51.net/article/153665.htm https://www.jianshu.com ...
- 腾讯云的对象存储COS
什么是对象存储COS Clound Object Storage,COS,专门为企业和开发者们提供能够存储海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储和处理,在任意位置存储和检索 ...
- ps加强总结
快捷键 1.ctrl+alt+z返回 2.ctrl+z撤销 3.ctrl+s保存 4.ctrl+shift+s另存为 5.shift是有序的选择 ctrl键是无序的选择 6.ctrl+g打组 ...
- Redis(一):NoSQL入门和概述
NoSQL入门和概述目录导航: NoSQL入门概述 3V+3高 当下的NoSQL经典应用 NoSQL数据模型简介 NoSQL数据库的四大分类 在分布式数据库中CAP原理CAP+BASE NoSQL 入 ...
- 获取当前目录下所有php文件内的函数名
$dir = dirname(__FILE__); $files = scandir($dir); foreach($files as $name){ if($name == '.' || $name ...