mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
feat(work): add sliding window solution for maximum average subarray and implement longest consecutive sequence
This commit is contained in:
1 parent
c2a375fffc
commit
4a1838ab28
2 files changed
+69
-1
No files matched your search
@@ -39,4 +39,15 @@ Constraints:
|
|||||||
|
|
||||||
class Solution:
|
class Solution:
|
||||||
def findMaxAverage(self, nums: list[int], k: int) -> float:
|
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
|
||||||
@@ -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
|
||||||
Reference in new issue
Block a user