From 4164be15ac79779e4b9e665aaa5aa5a970d57e3a Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 25 Aug 2024 21:37:56 +0200 Subject: [PATCH] =?UTF-8?q?go:=20add=20=C2=AB2130.=20Maximum=20Twin=20Sum?= =?UTF-8?q?=20of=20a=20Linked=20List=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- go/maximum-twin-sum-of-a-linked-list.go | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 go/maximum-twin-sum-of-a-linked-list.go diff --git a/go/maximum-twin-sum-of-a-linked-list.go b/go/maximum-twin-sum-of-a-linked-list.go new file mode 100644 index 0000000..e4eb12f --- /dev/null +++ b/go/maximum-twin-sum-of-a-linked-list.go @@ -0,0 +1,27 @@ +package main + +func pairSum(head *ListNode) int { + findMidAndBuild := func() ([]int, *ListNode) { + stack := make([]int, 0) + + slow, fast := head, head + for fast != nil { + stack = append(stack, slow.Val) + slow, fast = slow.Next, fast.Next.Next + } + + return stack, slow + } + + stack, node := findMidAndBuild() + + foundMax, idx := 0, len(stack)-1 + for node != nil { + foundMax = max(foundMax, stack[idx]+node.Val) + + node = node.Next + idx-- + } + + return foundMax +}