直接找乙個點(右上角)就可以排除行或列了。
首先選取右上角數字,等於查詢數字,就返回true,大於的話,剔除列,小於的話剔除行。
不斷地剔除行和列,每次都查右上角,直至查到
class
solution
:def
findnumberin2darray
(self, matrix: list[list[
int]
], target:
int)
->
bool:if
len(matrix)
andlen
(matrix[0]
):hang=
0 lie=
len(matrix[0]
)-1while hang<
len(matrix)
and lie>=0:
if matrix[hang]
[lie]
==target:
return
true
elif matrix[hang]
[lie]
>target:
lie-=
1else
: hang+=
1return
false
LeetCode 猜數字大小(折半查詢)
我們正在玩乙個猜數字遊戲。遊戲規則如下 我從 1 到 n 選擇乙個數字。你需要猜我選擇了哪個數字。每次你猜錯了,我會告訴你這個數字是大了還是小了。你呼叫乙個預先定義好的介面 guess int num 它會返回 3 個可能的結果 1,1 或 0 1 我的數字比較小 1 我的數字比較大 0 恭喜!你猜...
LeetCode 存在重複
給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式應該返回 true。如果每個元素都不相同,則返回 false。實現思路 我們假設陣列中的元素不重複,兩兩比較陣列中的元素,使用陣列中的第乙個元素和後續所有元素比較,接著使用陣列中的第二個元素和後續元素比較,依次類推實現兩兩比...
LeetCode 存在重複
傳送門 題目描述 給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true 示例 2 輸入 1,2,3,4 輸出 false 示例 3 輸入 1,1,1,3,3,4,3,...