diff --git a/medium/longest_nice_subarray.py b/medium/longest_nice_subarray.py new file mode 100644 index 0000000..b1be81d --- /dev/null +++ b/medium/longest_nice_subarray.py @@ -0,0 +1,17 @@ +# https://leetcode.com/problems/longest-nice-subarray + +from typing import List + +class Solution: + def longestNiceSubarray(self, nums: List[int]) -> int: + left = 0 + or_mask = 0 + result = 0 + for right in range(len(nums)): + while (or_mask & nums[right]) != 0: + or_mask ^= nums[left] + left += 1 + or_mask |= nums[right] + result = max(result, right - left + 1) + return result +