###### tags: `LeetCode` `Binary Search` `Medium` # LeetCode #74 [Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/) ### (Medium) 編寫一個高效的算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性: 每行中的整數從左到右按升序排列。 每行的第一個整數大於前一行的最後一個整數。  --- 除了把一維數組改成二維數組外, 沒有其他變化, 注意索引轉換即可。 --- ``` class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int l=0, m=matrix.size(), n=matrix[0].size(); int r=m*n-1; while(l<r){ int mid=l+(r-l)/2; int i=mid/n, j=mid%n; if(matrix[i][j]==target)return true; if(matrix[i][j]<target)l=mid+1; else r=mid; } if(matrix[l/n][l%n]==target)return true; return false; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up