2023-07-05 Daily Challenge
Today I have done leetcode's July LeetCoding Challenge with cpp
.
July LeetCoding Challenge 5
Description
Longest Subarray of 1's After Deleting One Element
Given a binary array nums
, you should delete one element from it.
Return the size of the longest non-empty subarray containing only 1
's in the resulting array. Return 0
if there is no such subarray.
Example 1:
Input: nums = [1,1,0,1] Output: 3 Explanation: After deleting the number in position 2, [1,1,1] contains 3 numbers with value of 1's.
Example 2:
Input: nums = [0,1,1,1,0,1,1,0,1] Output: 5 Explanation: After deleting the number in position 4, [0,1,1,1,1,1,0,1] longest subarray with value of 1's is [1,1,1,1,1].
Example 3:
Input: nums = [1,1,1] Output: 2 Explanation: You must delete one element.
Constraints:
1 <= nums.length <= 105
nums[i]
is either0
or1
.
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
int longestSubarray(vector<int>& nums) {
int start = 0;
int count = 0;
int answer = 0;
for(int i = 0; i < nums.size(); ++i) {
count += !nums[i];
while(count > 1) {
count -= !nums[start];
start += 1;
}
answer = max(answer, i - start);
}
return answer;
}
};
// Accepted
// 74/74 cases passed (53 ms)
// Your runtime beats 23.1 % of cpp submissions
// Your memory usage beats 65.98 % of cpp submissions (36.5 MB)