2105、给植物浇水II

题目:

2105、给植物浇水II_第1张图片

解答:

这题有一个前提:每一株植物都是可以用对应的装满水的水壶完成浇水的。不然会陷入死循环
(也就是 不存在比如a需要浇水10,但是水壶容量只有8)

思路:遇到植物先判断是否浇水,不够就灌水然后ans++,两边同时判断

当left=right意味着二人相遇了,要浇水的植物一共为奇数个。这里不需要判断谁浇水,只要判断水最多的人够不够浇水即可。如果不够,直接ans++然后return。

如果植物是偶数个,那么两人一人浇一半,不存在left=right的情况。

class Solution {
public:
    int minimumRefill(vector& plants, int capacityA, int capacityB) {
        int len = plants.size();
        int ans = 0;
        int a=capacityA,b=capacityB;
        int left=0,right=len-1;
        while(left

时间复杂度O(n)

空间复杂度O(1)

你可能感兴趣的:(leetcode,#,相向双指针,算法,leetcode,数据结构)