[LeetCode] Search a 2D Matrix II
2015-11-09 21:17
246 查看
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 =
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.
解题思路
O(m+n)。从矩阵右上角开始遍历元素,若小于目标,则说明第该行元素都不符合要求,行号加1;若大于目标,则说明该列元素都不符合要求,列号减1。实现代码
// Runtime: 14 ms public class Solution { public boolean searchMatrix(int[][] matrix, int target) { if (matrix.length == 0) { return false; } int i = 0; int j = matrix[0].length - 1; while (i < matrix.length && j >= 0) { if (matrix[i][j] > target) { j--; } else if (matrix[i][j] < target) { i++; } else { return true; } } return false; } }
相关文章推荐
- Android apk反编译(附图+工具)
- TCP/IP详解学习笔记(1)-- 概述
- mysql半主从复制
- Python编写微信打飞机小游戏(三)
- AJAX 跨域请求 - JSONP获取JSON数据
- 初级案例
- JAVA反射系列之Method,java.lang.reflect.Method的使用
- Python/scikit-learn机器学习库(特征选取)
- Angular JS 学习 -- 服务Service
- 大道至简第六章读后感
- LightOJ 1294 - Positive Negative Sign (规律)
- SOJ 3300_Stockholm Coins
- SOJ 3300_Stockholm Coins
- JAVA中使用AES加密
- 搭建Erlang语言开发环境(文本编辑器+Erlang OTP,不是绑定IDE的环境)
- ionic tab选项卡置于顶部
- css布局 : 居中问题
- 课堂作业
- CI
- 二叉树的镜像