rishiilluri

Untitled

Aug 10th, 2024
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. def can_find_good_subarray_length(financialMetrics, limit, length):
  2.     # Check if there is a valid subarray of the given length
  3.     n = len(financialMetrics)
  4.     if length > n:
  5.         return False
  6.     threshold = limit / length
  7.    
  8.     # Sliding window approach to check validity
  9.     current_valid_count = 0
  10.     for i in range(n):
  11.         if financialMetrics[i] > threshold:
  12.             current_valid_count += 1
  13.         else:
  14.             current_valid_count = 0
  15.        
  16.         if current_valid_count >= length:
  17.             return True
  18.    
  19.     return False
  20.  
  21. def find_max_good_subarray_length(financialMetrics, limit):
  22.     n = len(financialMetrics)
  23.     low, high = 1, n
  24.     max_len = -1
  25.    
  26.     while low <= high:
  27.         mid = (low + high) // 2
  28.         if can_find_good_subarray_length(financialMetrics, limit, mid):
  29.             max_len = mid
  30.             low = mid + 1
  31.         else:
  32.             high = mid - 1
  33.    
  34.     return max_len
  35.  
  36. # Example usage
  37. n = 5
  38. limit = 6
  39. financialMetrics = [1, 3, 4, 3, 1]
  40. print(find_max_good_subarray_length(financialMetrics, limit))  # Output: 2
  41.  
Advertisement
Add Comment
Please, Sign In to add comment