Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def can_find_good_subarray_length(financialMetrics, limit, length):
- # Check if there is a valid subarray of the given length
- n = len(financialMetrics)
- if length > n:
- return False
- threshold = limit / length
- # Sliding window approach to check validity
- current_valid_count = 0
- for i in range(n):
- if financialMetrics[i] > threshold:
- current_valid_count += 1
- else:
- current_valid_count = 0
- if current_valid_count >= length:
- return True
- return False
- def find_max_good_subarray_length(financialMetrics, limit):
- n = len(financialMetrics)
- low, high = 1, n
- max_len = -1
- while low <= high:
- mid = (low + high) // 2
- if can_find_good_subarray_length(financialMetrics, limit, mid):
- max_len = mid
- low = mid + 1
- else:
- high = mid - 1
- return max_len
- # Example usage
- n = 5
- limit = 6
- financialMetrics = [1, 3, 4, 3, 1]
- print(find_max_good_subarray_length(financialMetrics, limit)) # Output: 2
Advertisement
Add Comment
Please, Sign In to add comment