https://medium.com/@avrdan/leetcode-42-trapping-rain-water-in-c-two-pointers-lc-hard-cpp-interview-problem-solution-4523f1f195ec