25 lines
761 B
Markdown
25 lines
761 B
Markdown
Leetcode #1494 | #Medium | [[Скользящее окно]]
|
|
## Идея
|
|
Скользящее окно с счетчиком нулей, res = max(res, r-l) <- не делаем +1 так как один символ надо удалить по-любому
|
|
## [[Big-O]]
|
|
- Время ```O(N)```
|
|
- Память ```O(N)```
|
|
## Код
|
|
```Java
|
|
class Solution {
|
|
public int longestSubarray(int[] nums) {
|
|
int l = 0;
|
|
int zeroCount = 0;
|
|
int res = 0;
|
|
for (int r = 0; r < nums.length; r++) {
|
|
if (nums[r] == 0) zeroCount++;
|
|
while (zeroCount > 1) {
|
|
if (nums[l] == 0) zeroCount--;
|
|
l++;
|
|
}
|
|
res = Math.max(res, r - l);
|
|
}
|
|
return res;
|
|
}
|
|
}
|
|
``` |