엔지니어 게시판
LeetCode 솔루션 분류

[5/17] 2130. Maximum Twin Sum of a Linked List

컨텐츠 정보

본문

관련자료

댓글 2

mingki님의 댓글

  • 익명
  • 작성일

JayShin님의 댓글

  • 익명
  • 작성일
# Time Complexity: O(n), Space Complexity: O(1)

class Solution:
    def pairSum(self, head: Optional[ListNode]) -> int:
        # Use fast and slow, 2 pointers, the slow will be the half
        slow = fast = head
        while fast and fast.next:
            fast = fast.next.next
            slow = slow.next

        # Reverse the half. It will be the backward
        cur, prev = slow, None
        while cur:
            curNext = cur.next
            cur.next = prev
            prev = cur
            cur = curNext

        # Calculate the max sum adding forward and backward
        maxSum = float('-inf')
        forward, backward = head, prev
        while backward:
            maxSum = max(maxSum, + forward.val + backward.val)
            forward, backward = forward.next, backward.next
        return maxSum
전체 404 / 2 페이지
번호
제목
이름

최근글


인기글


새댓글


Stats


  • 현재 접속자 765 명
  • 오늘 방문자 7,402 명
  • 어제 방문자 6,975 명
  • 최대 방문자 14,831 명
  • 전체 회원수 1,537 명
알림 0