목차


정렬된 수 사이에 gap을 채우기

def maximumElementAfterDecrementingAndRearranging(arr: List[int]) -> int:
  arr sort()
  prev = 0
  for i in range(1, len(arr)):
      if arr[i] - arr[prev] > 1:
          arr[i] = arr[prev] + 1
      prev = i

  return arr[-1]

sum of all odd length subarrays

def sumOddLengthSubarrays(arr: List[int]) -> int:
  n = len(arr)
  ans = 0
  for i in range(n):
      ans += ((i + 1) * (n - i) + 1) // 2 * arr[i]
  return ans

2024-04-21
다음 글: Dynamic Programming → 카테고리로 돌아가기 ↩