广州黄埔区百度词条优化
广州黄埔区,百度词条优化,网站排名方法,深圳高端网站建设价格5201. 给植物浇水
你打算用一个水罐给花园里的 n 株植物浇水。植物排成一行#xff0c;从左到右进行标记#xff0c;编号从 0 到 n - 1 。其中#xff0c;第 i 株植物的位置是 x i 。x -1 处有一条河#xff0c;你可以在那里重新灌满你的水罐。
每一株植物都需要浇特定…5201. 给植物浇水
你打算用一个水罐给花园里的 n 株植物浇水。植物排成一行从左到右进行标记编号从 0 到 n - 1 。其中第 i 株植物的位置是 x i 。x -1 处有一条河你可以在那里重新灌满你的水罐。
每一株植物都需要浇特定量的水。你将会按下面描述的方式完成浇水
按从左到右的顺序给植物浇水。在给当前植物浇完水之后如果你没有足够的水 完全 浇灌下一株植物那么你就需要返回河边重新装满水罐。你 不能 提前重新灌满水罐。 最初你在河边也就是x -1在 x 轴上每移动 一个单位 都需要 一步 。
给你一个下标从 0 开始的整数数组 plants 数组由 n 个整数组成。其中plants[i] 为第 i 株植物需要的水量。另有一个整数 capacity 表示水罐的容量返回浇灌所有植物需要的 步数 。 示例 1输入plants [2,2,3,3], capacity 5
输出14
解释从河边开始此时水罐是装满的
- 走到植物 0 (1 步) 浇水。水罐中还有 3 单位的水。
- 走到植物 1 (1 步) 浇水。水罐中还有 1 单位的水。
- 由于不能完全浇灌植物 2 回到河边取水 (2 步)。
- 走到植物 2 (3 步) 浇水。水罐中还有 2 单位的水。
- 由于不能完全浇灌植物 3 回到河边取水 (3 步)。
- 走到植物 3 (4 步) 浇水。
需要的步数是 1 1 2 3 3 4 14 。示例 2输入plants [1,1,1,4,2,3], capacity 4
输出30
解释从河边开始此时水罐是装满的
- 走到植物 012 (3 步) 浇水。回到河边取水 (3 步)。
- 走到植物 3 (4 步) 浇水。回到河边取水 (4 步)。
- 走到植物 4 (5 步) 浇水。回到河边取水 (5 步)。
- 走到植物 5 (6 步) 浇水。
需要的步数是 3 3 4 4 5 5 6 30 。示例 3输入plants [7,7,7,7,7,7,7], capacity 8
输出49
解释每次浇水都需要重新灌满水罐。
需要的步数是 1 1 2 2 3 3 4 4 5 5 6 6 7 49 。提示
n plants.length1 n 10001 plants[i] 10610^6106max(plants[i]) capacity 10910^9109
解题思路
当我们走到某株植物前判断水罐里面的水是否够用如果发现了不够水需要返回河边重新装满水罐一来一回的步数为2*(i1)-1i为当前缺水植物的下标而正常足够水浇灌的话我们只需要每次增加一步。
代码
class Solution {
public:int wateringPlants(vectorint plants, int capacity) {int curcapacity,res0;for (int i 0; i plants.size(); i) {if (curplants[i]){res(2*(i1)-1);curcapacity-plants[i];}else {cur-plants[i];res;}}return res;}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/87914.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!