有規律的陣列查詢最快的方法我想到了二分法。
矩陣是從左到右,從上到下變大,那麼對角線的找發會省時一些。
方法一:左上到右下
往右和往下都是增大,不能實現。
方法二:右下到左上
往上和往左都是減少,不能實現。
方法三:右上到左下
往左減少 往下增加,可實現。
方法四:左下到右上
往上減少 往右增加,可實現。
leetcode題解裡有個**動畫解釋的很好:
我的**:(實現方法三)
public
static
boolean
searchmatrix
(int
matrix,
int target)
else
else
if(matrix[r]
[c]< target)
else
}// system.out.println("false");
return
false;}
}
題目來自leetcod leetcode刷題(7) 搜尋二維矩陣
編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示例 2...
Leetcode刷題74 搜尋二維矩陣
編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示例 2...
搜尋二維矩陣
寫出乙個高效的演算法來搜尋 m n矩陣中的值。這個矩陣具有以下特性 每行中的整數從左到右是排序的。每行的第乙個數大於上一行的最後乙個整數。樣例 考慮下列矩陣 1,3,5,7 10,11,16,20 23,30,34,50 給出 target 3,返回 true 思路一 最容易想到的一種解法就是兩層f...