#leetcode#Search a 2D Matrix II
2015-07-23 05:43
411 查看
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 =
分析:这题前天刚在EPI上看到....
比 Search a 2D Matrix 多了个条件,那就是每一列都是单调递增的, 假设matrix是 n * n 的, 从右上角元素开始判断, 设为x,
如果 x == target, 返回 true
如果 x < target, 则向左边的列去寻找
如果 x > target, 则想下面的行去寻找
时间复杂度 O(m + n)
leetcode 有一篇这题的讨论,除了这种O(m + n)的解法, 还有更快的..
http://articles.leetcode.com/2010/10/searching-2d-sorted-matrix-part-ii.html
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.
分析:这题前天刚在EPI上看到....
比 Search a 2D Matrix 多了个条件,那就是每一列都是单调递增的, 假设matrix是 n * n 的, 从右上角元素开始判断, 设为x,
如果 x == target, 返回 true
如果 x < target, 则向左边的列去寻找
如果 x > target, 则想下面的行去寻找
时间复杂度 O(m + n)
leetcode 有一篇这题的讨论,除了这种O(m + n)的解法, 还有更快的..
http://articles.leetcode.com/2010/10/searching-2d-sorted-matrix-part-ii.html
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix == null || matrix.length == 0 || matrix[0].length == 0){ return false; } int r = 0; int c = matrix[0].length - 1; while(r < matrix.length && c >= 0){ if(matrix[r][c] == target){ return true; }else if(matrix[r][c] > target){ c--; }else{ r++; } } return false; } }
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解
- LeetCode [Day 6] ZigZag Conversion 题解