[
array
simulation
]
Leetcode 0755 Pour Water
Problem statement
https://leetcode.com/problems/pour-water/
Solution
Here we just need to do simulation of process: first try left direction and move i
while it is not increasing. Also keep best
position we will move only if our level decreased. Then do the same steps in right direction.
Complexity
Time complexity is O(Vn)
, space is O(n)
to return answer. Good question, if we can do better.
Code
class Solution:
def pourWater(self, heights, V, K):
for _ in range(V):
i, best, n = K, K, len(heights)
for d in [-1,1]:
while n > i+d >= 0 and heights[i+d] <= heights[i]:
if heights[i+d] < heights[i]: best = i +d
i += d
heights[best] += 1
return heights