拯救鲜花
吉克正在集市上卖花。他把所有的花都放在一排的 N 个篮子里。你
给你一个包含 n 个元素的数组 arr,其中第 i 个盒子包含 arr[i] 个花篮。同时给你
一个字符串 s,其中 s[i] 表示盒子是否有盖。
突然下起了雨,极客必须尽可能多地保存容器。如果第 i 个盒子有盖
如果第 i 个盒子有盖子,他可以把盖子转移到第 (i-1) 个盒子(如果该盒子没有盖子)。转移不需要时间。你的
你的任务是确定从降雨中最多可以保存多少个容器。您不能
移动盖子超过一次。
示例 1:
输入:
n = 5
arr = {3,5,2,9,1}
s = "00110”
输出: 14
14
说明
Geek 可以把第 3 个盖子移到第 2 个盒子里,因此可以保存的容器数量为 (9+5)=14 个。
因此可保存的数字是 (9+5)=14。
例 2:
输入
n = 3
arr = {2,1,3}
s = "000”
输出: 0
0
说明:
Geek 没有盖子保护 owers。
你的任务
你不需要读取输入或打印任何东西。您的任务是完成
函数 saveFlowers(),该函数将整数 n、数组 arr[] 和字符串 s 作为输入参数,并返回可保存的欠花的最大数量。
并返回可保存的花的最大数量。
预期时间复杂度: O(N)
预期空间复杂度:O(N) O(N)
限制条件
1 <= n <= 10
1 <= arr[i] <= 10
s 只包含 “0 ”和 "1
通过DeepL.com(免费版)翻译
----
这里面就是找到连续的l-r的块,l要--,然后加这里面的和,减去这中间最小的数,这样保护的鲜花才是最多的,类似于双指针,只是要想到这个解题方法,不然就老实做错,