Loading... > https://leetcode.cn/problems/watering-plants-ii/description/?envType=daily-question&envId=2024-05-02 名为中等实为简单,模拟一下即可。 ```c++ class Solution { public: int minimumRefill(std::vector<int>& plants, int capacityA, int capacityB) { const int n = plants.size(); int res = 0; int lRemaining = capacityA, rRemaning = capacityB; for (int left = 0, right = plants.size() - 1; left < right; ++left, --right) { if (lRemaining < plants[left]) { lRemaining = capacityA; ++res; } lRemaining -= plants[left]; if (rRemaning < plants[right]){ rRemaning = capacityB; ++res; } rRemaning -= plants[right]; } if (n & 1 && std::max(lRemaining, rRemaning) < plants[n / 2]) ++res; return res; } }; ``` - 时间复杂度:$O(n)$ ,其中 $n$ 为 `plants` 的长度。 - 空间复杂度:$O(1)$ 。 最后修改:2024 年 05 月 09 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏