![JAR search and dependency download from the Maven repository](/logo.png)
g1901_2000.s1901_find_a_peak_element_ii.Solution.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-kotlin Show documentation
Show all versions of leetcode-in-kotlin Show documentation
Kotlin-based LeetCode algorithm problem solutions, regularly updated
package g1901_2000.s1901_find_a_peak_element_ii
// #Medium #Array #Binary_Search #Matrix #Divide_and_Conquer #Binary_Search_II_Day_17
// #2023_06_19_Time_726_ms_(100.00%)_Space_92.7_MB_(100.00%)
class Solution {
fun findPeakGrid(mat: Array): IntArray {
val n = mat.size
val m = mat[0].size
var l = 0
var r = m - 1
var mid: Int
while (l <= r) {
mid = (l + r) / 2
var mx = mat[0][mid]
var mxi = 0
for (i in 1 until n) {
if (mx < mat[i][mid]) {
mx = mat[i][mid]
mxi = i
}
}
val lv = if (mid > l) mat[mxi][mid - 1] else -1
val rv = if (mid < r) mat[mxi][mid + 1] else -1
if (mx > lv && mx > rv) {
return intArrayOf(mxi, mid)
} else if (mx > lv) {
l = mid + 1
} else {
r = mid - 1
}
}
return intArrayOf(-1, -1)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy