一、題目描述
在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
二、我的思路:
設計思路:
從第一行到最後一行起,每一行都是:
先用二分查詢找到本行比target小的數字,然後這個數字右邊的所有列都比target大,故去除;
即程式中的i1 = binarysearch(target,array[i2],0,i1);(i1即是下一行查詢的列的範圍最右邊)
這一行target左邊的數字都比target小,也去除。
即程式中的i2=i2+1;(即下一列)
三、**
/**
* @classname search01
* description todo
* @auther 青青子衿
* @date 2019/8/8 10:24
*/public
class
search01
int middle=0;
while
(start<=end)
else
if(array[middle]
else}if
(start>middle)
if(end
return
-100;}
public
static
boolean
find
(int target,
int[
] array)
if(target
[0]||target>array[n2-1]
[n1-1]
)int i1=n1-
1, i2 =0;
while
(i1>=
0&&i2<=n2-1)
i2=i2+1;
}return
false;}
public
static
void
main
(string[
] args),,
,};// int array =};
system.out.
println
(find(5
,array));
}}
去看了看別人的思路,發現人家的思路比我的明了許多。 牛客網 二維陣列中的查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 從左下角開始比較,如果 target 比當前陣列數字小,那麼就向上一行找,然後遍歷這行的,如果 ta...
牛客網 二維陣列中的查詢(陣列)
題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。知識點 1 一維陣列的定義 1 int intarr new int 2 int intarr 3 in...
二維陣列中的查詢(牛客網(一))
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution return false 二維陣列為空,要檢查三個部分 一是陣列首位址是否為空 二是是否為...