[Leetcode]#74 Search a 2D Matrix
2015-09-02 07:14
405 查看
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return true.
Integers in each row are sorted from left to right. The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return true.
//#74 Search a 2D Matrix //16ms 45.83% class Solution { public: bool searchMatrix(vector <vector<int> > & matrix, int target) { vector<int> m; for(unsigned int i=0; i<matrix.size(); i++) { for(unsigned int j=0; j<matrix[i].size(); j++) { m.push_back(matrix[i][j]); } } int ub(matrix.size() * matrix[0].size()); int lb(0); while(lb != ub) { //cout << lb << ", " << ub << endl; int p = (lb+ub)/2; if(m[p] == target) { return true; } else if(lb == ub - 1) { return false; } if(m[p] > target) { //cout << "Too Large\n"; ub = p; } else { //cout << "Too Small\n"; lb = p; } } return false; } };
相关文章推荐
- C#使用Matrix执行缩放的方法
- 如何使用Matrix对bitmap的旋转与镜像水平垂直翻转
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- HP Z800 Workstation - Configuring RAID devices (HP Z800 做磁盘Raid1,Raid0的阵列)
- Android Matrix类以及ColorMatrix类详解
- 用css实现图片的旋转
- 让舞台上的按钮btn灰掉
- Android中Bitmap和Drawable
- [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