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