LeetCode 1901. 找出顶峰元素 II(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1901. 找出顶峰元素 II(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
一個 2D 網格中的 頂峰元素 是指那些 嚴格大于 其相鄰格子(上、下、左、右)的元素。
給你一個 從 0 開始編號 的 m x n 矩陣 mat ,其中任意兩個相鄰格子的值都 不相同 。找出 任意一個 頂峰元素 mat[i][j] 并 返回其位置 [i,j] 。
你可以假設整個矩陣周邊環繞著一圈值為 -1 的格子。
要求必須寫出時間復雜度為 O(m log(n)) 或 O(n log(m)) 的算法
示例 1:
示例 2:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-a-peak-element-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 對行進行二分查找,找到中行 mid, 及其上下兩行,每行的最大值
- 如果 mid 行最大值 >= 相鄰兩行的,則找到了頂峰
- 否則,二分查找較大的一側,頂峰元素肯定存在
144 ms 45.2 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1901. 找出顶峰元素 II(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1863. 找出所有子
- 下一篇: LeetCode 2121. 相同元素的