剑指Offer #01 二维数组中的查找(Java描述)
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer #01 二维数组中的查找(Java描述)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目來源:牛客網(wǎng)-劍指Offer專題
題目地址:二維數(shù)組中的查找
題目描述
在一個二維數(shù)組中(每個一維數(shù)組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
題目解析
方法一:
暴力法,遍歷二維數(shù)組,時間復(fù)雜度為 O(n2)O(n^2)O(n2)
方法二:
根據(jù)題目信息可以知道,每一行的數(shù)字都是有序的。于是,我們對每一行都進行二分查找,時間復(fù)雜度O(nlogn)O(nlogn)O(nlogn)
方法三:
由于在數(shù)組在水平和垂直方向都是遞增的,所以我們可以從左下角開始,若當前值 nownownow 比目標值 targettargettarget 大,則向上移動;若 now<targetnow <targetnow<target ,則向右移動。以這種方法去搜尋目標值,時間復(fù)雜度O(n)O(n)O(n)
如果本文對你有所幫助,別忘了點贊哦~
總結(jié)
以上是生活随笔為你收集整理的剑指Offer #01 二维数组中的查找(Java描述)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L2-006 树的遍历-团体程序设计天梯
- 下一篇: 剑指Offer #02 替换空格(字符串