Leetcode 240: Search a 2D Matrix II
2015-12-15 09:03
295 查看
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
Integers in each row are sorted in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following matrix:
Given target =
Given target =
Solution:
Search from the left-right corner. If the value is greater than target, then move the pointer right to the next column; if the value is smaller than target, move the pointer up to the previous row.
Time complexity: O(m+n)
Space complexity: O(1)
Integers in each row are sorted in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following 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] ]
Given target =
5, return
true.
Given target =
20, return
false.
Solution:
Search from the left-right corner. If the value is greater than target, then move the pointer right to the next column; if the value is smaller than target, move the pointer up to the previous row.
Time complexity: O(m+n)
Space complexity: O(1)
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int row = matrix.length; int col = matrix[0].length; int i = row - 1; int j = 0; while (i >=0 && j < col) { if (target == matrix[i][j]) { return true; } else if (target < matrix[i][j]) { i--; } else { j++; } } return false; } }
相关文章推荐
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- javascript数组操作总结和属性、方法介绍
- mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
- JavaScript Array扩展实现代码
- JavaScript之数组(Array)详解
- C#中Array与ArrayList用法及转换的方法
- Array栈方法和队列方法的特点说明
- Array.prototype.slice 使用扩展
- Array, Array Constructor, for in loop, typeof, instanceOf
- 实例详解ECMAScript5中新增的Array方法
- js Array的用法总结
- JavaScript 判断判断某个对象是Object还是一个Array
- Javascript中的Array数组对象详谈
- js模拟实现Array的sort方法
- 在javascript将NodeList作为Array数组处理的方法
- PHP array_multisort()函数的使用札记
- PHP中array_merge和array相加的区别分析
- Sorting Array Values in PHP(数组排序)
- 深入array multisort排序原理的详解
- Array 重排序方法和操作方法的简单实例