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