목차


$O(n)$으로 배열 내 요소 간 최대 차이 구하기

def maxDifference(self, nums: List[int]) -> int:
    max_diff = -1
    min_val = nums[0]
    for i in range(1, len(nums)):
        if nums[i] > min_val:
            max_diff = max(max_diff, nums[i] - min_val)
        else:
            min_val = nums[i]
    return max_diff

필요 없는 중간과정 생략하기

def mostVisited(self, n: int, rounds: List[int]) -> List[int]:
    start, end = rounds[0], rounds[-1]
    if start <= end:
        return list(range(start, end + 1))
    else:
        return list(range(1, end + 1)) + list(range(start, n + 1))

3개의 distinct한 subarray를 구하는 방법

```go func minCost(nums []int) int { n := len(nums)

minCost := math.MaxInt32
for i := 1; i < n - 1; i++ {
    for j := i + 1; j < n; j++ {
        cost := nums[0] + nums[i] + nums[j]
        minCost = min(minCost, cost)
    }
}
return minCost }

2024-05-12
다음 글: LIS - 완전 탐색에서 동적 계획법까지 → 카테고리로 돌아가기 ↩