网站开发合同 保密条款,电子商务网站的建设方式,网站打开慢怎么回事,企业网站建设的总体架构给你一个二进制数组 nums #xff0c;你需要从中删掉一个元素。
请你在删掉元素的结果数组中#xff0c;返回最长的且只包含 1 的非空子数组的长度。
如果不存在这样的子数组#xff0c;请返回 0 。
提示 1#xff1a;
输入#xff1a;nums [1,1,0,1]
输出#xff1…给你一个二进制数组 nums 你需要从中删掉一个元素。
请你在删掉元素的结果数组中返回最长的且只包含 1 的非空子数组的长度。
如果不存在这样的子数组请返回 0 。
提示 1
输入nums [1,1,0,1]
输出3
解释删掉位置 2 的数后[1,1,1] 包含 3 个 1 。
示例 2
输入nums [0,1,1,1,0,1,1,0,1]
输出5
解释删掉位置 4 的数字后[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1] 。
示例 3
输入nums [1,1,1]
输出2
解释你必须要删除一个元素。
代码如下
class Solution {
public:int longestSubarray(vectorint nums) {int left0;//定义在左边界int right0;//定义右边界int res0;//存放最长数组的个数包括0在内int count0;//计数while(rightnums.size()){if(nums[right]0)//当此时的数字为0时count{count;}while(count1)//count1时说明此时子数组里不只有一个0{if(nums[left]0)//所以当此时的nums[left]0时count-1{count--;}left;//left左移一个}resmax(res,right-left1);//记录每次满足条件的子数组的最大长度right;//right右移一个}return res-1;//最大长度里包含0-1后满足条件}
};