剑指Offer #01 二维数组中的查找(Java描述)
題目來源:牛客網(wǎng)-劍指Offer專題
題目地址:二維數(shù)組中的查找
題目描述
在一個(gè)二維數(shù)組中(每個(gè)一維數(shù)組的長(zhǎng)度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。
題目解析
方法一:
暴力法,遍歷二維數(shù)組,時(shí)間復(fù)雜度為 O(n2)O(n^2)O(n2)
方法二:
根據(jù)題目信息可以知道,每一行的數(shù)字都是有序的。于是,我們對(duì)每一行都進(jìn)行二分查找,時(shí)間復(fù)雜度O(nlogn)O(nlogn)O(nlogn)
方法三:
由于在數(shù)組在水平和垂直方向都是遞增的,所以我們可以從左下角開始,若當(dāng)前值 nownownow 比目標(biāo)值 targettargettarget 大,則向上移動(dòng);若 now<targetnow <targetnow<target ,則向右移動(dòng)。以這種方法去搜尋目標(biāo)值,時(shí)間復(fù)雜度O(n)O(n)O(n)
如果本文對(duì)你有所幫助,別忘了點(diǎn)贊哦~
總結(jié)
以上是生活随笔為你收集整理的剑指Offer #01 二维数组中的查找(Java描述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L2-006 树的遍历-团体程序设计天梯
- 下一篇: 手撕设计模式之「简单工厂模式」(Java