這道題就是搜尋矩陣中的數是否存在,問題是,能不能降到線性時間?
最簡單的演算法就是找一條路徑,那麼也就是個線性時間。
如果用二分法跳躍,這是普通優化的極限了。
如果說用遞迴的方法做,從下面的對角線開始收縮,我感覺不錯。。。而且沒有邊界檢測,我感覺不錯。。。。
看看網上,也是這樣的,沒什麼好點子。好了,開動。
不對不對,說實在的,即便按照對角線,還不如按照一行來的快。。。而且到最後不用拐彎,只需要判斷是否在首尾之間,然後再遍歷,複雜度為o(m+n),足夠了。
試了一下,不行,還是對角線法,沒別的了。。它難在**?它不是乙個正方形。
它超出時間限制了我靠,這個不是最優方法嗎?看了看樣例,它還是給出的第二個例子,應該是我**編寫錯了死迴圈了。。
不是它的問題,是我的問題,它死迴圈了。
注意它會有空陣列,這個返回false就可以了。而且這個}也算是乙個空,但是你檢測不出來。。。
最後,可以用分治劃分的方法,這樣 是極其有效的,但是有一點就是,面對極端情況就不怎麼好用。
leetcode240 搜尋二維矩陣
編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 示例 現有矩陣 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 給定 target 5...
LeetCode 240 搜尋二維矩陣 II
編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 示例 現有矩陣 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 給定 target 5...
LeetCode 240 搜尋二維矩陣 II
1.題目 2.解答 2.1.方法一 從矩陣的左下角開始比較 class solution return false 2.2.方法二 我們先沿著對角線的方向,找到第乙個大於目標值的數字。比如目標值 14,我們發現 9 14 17。然後左上角和右下角的元素都可以排除掉了。我們只需再對左下角剩餘的行和右上...