力扣每日一題:74.搜索二維矩陣的三種解題方法

74. 搜索二維矩陣

https://leetcode-cn.com/problems/search-a-2d-matrix/

難度:中等

題目:

編寫一個(gè)高效的算法來判斷m x n矩陣中百炬,是否存在一個(gè)目標(biāo)值。該矩陣具有如下特性:

每行中的整數(shù)從左到右按升序排列。
每行的第一個(gè)整數(shù)大于前一行的最后一個(gè)整數(shù)贿讹。

提示:

m == matrix.length

n == matrix[i].length

1 <= m, n <= 100

-104 <= matrix[i][j], target <= 104

示例:

示例 1:

輸入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3

輸出:true

示例 2:

輸入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13

輸出:false

分析:

凡是能通過暴力AC的題都不能算中等題...
這道題分別用暴力篮绿、貪心、二分完成

解題1.雙層for循環(huán):

class Solution:
    def searchMatrix(self, matrix, target):
        for i in matrix:
            for j in i:
                if j == target:
                    return True
                elif j > target:
                    return False
        return False

解題2.貪心算法:

class Solution:
    def searchMatrix(self, matrix, target):
        line = len(matrix) - 1
        row = len(matrix[0]) - 1
        i = j = 0
        while True:
            if matrix[i][j] == target:
                return True
            elif i < line and matrix[i + 1][j] <= target:
                i += 1
            elif j < row and matrix[i][j + 1] <= target:
                j += 1
            else:
                return False

解題3.二分查找:

class Solution:
    def searchMatrix(self, matrix, target):
        line = len(matrix)
        row = len(matrix[0])
        left = 0
        right = line * row
        while left < right:
            i, j = divmod((left + right) // 2, row)
            if matrix[i][j] == target:
                return True
            if matrix[i][j] < target:
                left = i * row + j + 1
            else:
                right = i * row + j
        return False

歡迎關(guān)注我的公眾號(hào): 清風(fēng)Python齐唆,帶你每日學(xué)習(xí)Python算法刷題的同時(shí)拧烦,了解更多python小知識(shí)。有喜歡力扣刷題的小伙伴可以加我微信互相鼓勵(lì)莉擒,共同進(jìn)步酿炸,一起玩轉(zhuǎn)超級(jí)碼力!

我的個(gè)人博客:https://qingfengpython.cn

力扣解題合集:https://github.com/BreezePython/AlgorithmMarkdown

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涨冀,一起剝皮案震驚了整個(gè)濱河市填硕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹿鳖,老刑警劉巖扁眯,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異翅帜,居然都是意外死亡姻檀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門涝滴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绣版,“玉大人,你說我怎么就攤上這事歼疮≡映椋” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵韩脏,是天一觀的道長(zhǎng)缩麸。 經(jīng)常有香客問我,道長(zhǎng)赡矢,這世上最難降的妖魔是什么杭朱? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吹散,結(jié)果婚禮上痕檬,老公的妹妹穿的比我還像新娘。我一直安慰自己送浊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布丘跌。 她就那樣靜靜地躺著袭景,像睡著了一般唁桩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耸棒,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天荒澡,我揣著相機(jī)與錄音,去河邊找鬼与殃。 笑死单山,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幅疼。 我是一名探鬼主播米奸,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼爽篷!你這毒婦竟也來了悴晰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逐工,失蹤者是張志新(化名)和其女友劉穎铡溪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泪喊,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棕硫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袒啼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哈扮。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瘤泪,靈堂內(nèi)的尸體忽然破棺而出灶泵,到底是詐尸還是另有隱情,我是刑警寧澤对途,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布赦邻,位于F島的核電站,受9級(jí)特大地震影響实檀,放射性物質(zhì)發(fā)生泄漏惶洲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一膳犹、第九天 我趴在偏房一處隱蔽的房頂上張望恬吕。 院中可真熱鬧,春花似錦须床、人聲如沸铐料。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钠惩。三九已至柒凉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篓跛,已是汗流浹背膝捞。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愧沟,地道東北人蔬咬。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像沐寺,于是被迫代替她去往敵國(guó)和親林艘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 題目描述 leetcode 第74題:搜索二維矩陣[https://leetcode-cn.com/problem...
    Yohann丶blog閱讀 150評(píng)論 0 0
  • 編寫一個(gè)高效的算法來判斷 m x n 矩陣中芽丹,是否存在一個(gè)目標(biāo)值北启。該矩陣具有如下特性: 每行中的整數(shù)從左到右按升序...
    刻苦驢噥閱讀 170評(píng)論 0 0
  • 題目描述 編寫一個(gè)高效的算法來判斷 m x n 矩陣中,是否存在一個(gè)目標(biāo)值拔第。該矩陣具有如下特性: 每行中的整數(shù)從左...
    珺王不早朝閱讀 297評(píng)論 0 0
  • 題目:編寫一個(gè)高效的算法來判斷 m x n 矩陣中咕村,是否存在一個(gè)目標(biāo)值。該矩陣具有如下特性: 每行中的整數(shù)從左到右...
    minningl閱讀 268評(píng)論 0 0
  • 題目鏈接難度:中等 類型: 數(shù)組蚊俺、二分查找 編寫一個(gè)高效的算法來判斷 m x n 矩陣中懈涛,是否存...
    wzNote閱讀 672評(píng)論 0 4