diff --git a/cs/longest-subarray-of-1s-after-deleting-one-element.cs b/cs/longest-subarray-of-1s-after-deleting-one-element.cs new file mode 100644 index 0000000..d36e1c9 --- /dev/null +++ b/cs/longest-subarray-of-1s-after-deleting-one-element.cs @@ -0,0 +1,20 @@ +public class Solution { + public int BitToInt(int num) => num == 0 ? 1 : 0; + + public int LongestSubarray(int[] nums) { + var longest = 0; + + var zeros = 0; + for (int l = 0, r = 0; r < nums.Length; ++r) { + zeros += BitToInt(nums[r]); + + for (; zeros > 1; ++l) { + zeros -= BitToInt(nums[l]); + } + + longest = Math.Max(longest, r - l); + } + + return longest; + } +}