diff --git a/work/1/Easy/Array/643.maximum-average-subarray-i.py b/work/1/Easy/Array/643.maximum-average-subarray-i.py index 3cd8acb..ca6654f 100644 --- a/work/1/Easy/Array/643.maximum-average-subarray-i.py +++ b/work/1/Easy/Array/643.maximum-average-subarray-i.py @@ -39,4 +39,15 @@ Constraints: class Solution: def findMaxAverage(self, nums: list[int], k: int) -> float: - maxAvg = 0 + window_sum = 0 + for i in range(k): + window_sum += nums[i] + largest = window_sum + + for right in range(k, len(nums)): + left = right - k + window_sum -= nums[left] + window_sum += nums[right] + largest = max(largest, window_sum) + + return largest / k diff --git a/work/1/Medium/Array/128.longest-consecutive-sequence.py b/work/1/Medium/Array/128.longest-consecutive-sequence.py new file mode 100644 index 0000000..7ab8454 --- /dev/null +++ b/work/1/Medium/Array/128.longest-consecutive-sequence.py @@ -0,0 +1,57 @@ +""" +128. Longest Consecutive Sequence +Difficulty: Medium +https://leetcode.com/problems/longest-consecutive-sequence/ + +────────────────────────────────────────────────── + +Given an unsorted array of integers nums, return the length of the +longest consecutive elements sequence. + +You must write an algorithm that runs in O(n) time. + + + +Example 1: + +Input: nums = [100,4,200,1,3,2] +Output: 4 +Explanation: The longest consecutive elements sequence is [1, 2, 3, +4]. Therefore its length is 4. + +Example 2: + +Input: nums = [0,3,7,2,5,8,4,6,0,1] +Output: 9 + +Example 3: + +Input: nums = [1,0,1,2] +Output: 3 + + + +Constraints: + + • 0 <= nums.length <= 10^5 + + • -10^9 <= nums[i] <= 10^9 +""" + + +class Solution: + def longestConsecutive(self, nums: list[int]) -> int: + seen = set(nums) + best = 0 + + for n in seen: + if n - 1 in seen: + continue + + length = 1 + while length + n in seen: + length += 1 + + best = max(length, best) + + return best