leetcode刷题 74.搜索二维矩阵
生活随笔
收集整理的這篇文章主要介紹了
leetcode刷题 74.搜索二维矩阵
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目分析
這是一道簡單的查找二維矩陣的題目,所以解決這題有一個最簡單的解法就是遍歷二維數(shù)組即可;但是我們應(yīng)該注意到題目中的每行整數(shù)從左到右是按升序排列的,第一個整數(shù)大于前一行的最后一個整數(shù),介于此,我們可以想到使用二分查找。
解法1:
class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target){for(auto i:matrix){for(auto j:i){if(j==target)return true;}}return false;} };解法二:
class Solution { public:int row, col;pair<int, int> getIndex(int n) {return {n/col, n%col}; //通過這個方式,將一維數(shù)組地址轉(zhuǎn)換為二維數(shù)組坐標(biāo),也是本解法的精華}bool searchMatrix(vector<vector<int>>& matrix, int target) {row = matrix.size(), col = matrix[0].size();int left = 0, right = row*col - 1;while(left <= right) {int mid = (left + right) / 2;auto [i, j] = getIndex(mid);if(matrix[i][j] == target)return true;else if(matrix[i][j] > target)right = mid-1;else if(matrix[i][j] < target)left = mid+1;}return false;} };作者:AC_OIer 鏈接:https://leetcode-cn.com/problems/search-a-2d-matrix/solution/gong-shui-san-xie-yi-ti-shuang-jie-er-fe-l0pq/ 來源:力扣(LeetCode) 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的leetcode刷题 74.搜索二维矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网上投资安全吗?
- 下一篇: leetcode刷题 153.寻找旋转排