Longest Subarray of 1's After Deleting One Element LeetCode solution in Java

1
class Solution {
2
public int longestSubarray(int[] nums) {
3
List<Integer> groups = new ArrayList<>();
4
for (int i = 0; i < nums.length; i++) {
5
if (nums[i] == 0) groups.add(nums[i]);
6
if (nums[i] == 1) {
7
int count = 0;
8
while (i < nums.length && nums[i] == 1) {
9
count++;
10
i++;
11
}
12
groups.add(count);
13
if (i < nums.length && nums[i] == 0) groups.add(0);
14
}
15
}
16
int max = 0;
17
if (groups.size() == 1) {
18
return groups.get(0) - 1;
19
}
20
for (int i = 0; i < groups.size(); i++) {
21
if (i < groups.size() - 2) {
22
max = Math.max(max, groups.get(i) + groups.get(i + 2));
23
} else {
24
max = Math.max(max, groups.get(i));
25
}
26
}
27

28
return max;
29
}
30
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0