Problem : https://leetcode.com/problems/daily-temperatures/
Use monotonic stack to keep a decreasing sequence.
class Solution {
fun dailyTemperatures(temperatures: IntArray): IntArray {
val stack = Stack<int>()
val result = IntArray(temperatures.size) { 0 }
for (i in 0 until temperatures.size) {
// pop all the days which temperature is lower than current day
while (!stack.empty() && temperatures[stack.peek()] < temperatures[i]) {
val last = stack.pop()
result[last] = i - last
}
stack.push(i)
}
return result
}
}
No comments:
Post a Comment