二維陣列的查詢(牛客網)

2021-09-25 23:38:03 字數 1243 閱讀 7320

一、題目描述

在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

二、我的思路:

設計思路:

從第一行到最後一行起,每一行都是:

先用二分查詢找到本行比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 二維陣列為空,要檢查三個部分 一是陣列首位址是否為空 二是是否為...