Problem
Solution: Simulation w/ Two Pointers
Simulate the watering process.
Time complexity: O(n)
Space complexity: O(1)
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Author: Huahua class Solution { public: int minimumRefill(vector<int>& plants, int capacityA, int capacityB) { const int n = plants.size(); int ans = 0; for (int l = 0, r = n - 1, A = capacityA, B = capacityB; l <= r; ++l, --r) { if (l == r) return ans += max(A, B) < plants[l]; if ((A -= plants[l]) < 0) A = capacityA - plants[l], ++ans; if ((B -= plants[r]) < 0) B = capacityB - plants[r], ++ans; } return ans; } }; |
请尊重作者的劳动成果,转载请注明出处!花花保留对文章/视频的所有权利。
如果您喜欢这篇文章/视频,欢迎您捐赠花花。
If you like my articles / videos, donations are welcome.
Be First to Comment