go: add «2130. Maximum Twin Sum of a Linked List»
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
8ab17a79b2
commit
4164be15ac
1 changed files with 27 additions and 0 deletions
27
go/maximum-twin-sum-of-a-linked-list.go
Normal file
27
go/maximum-twin-sum-of-a-linked-list.go
Normal file
|
@ -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
|
||||
}
|
Loading…
Reference in a new issue