add new solutions
This commit is contained in:
parent
489fa73880
commit
0f5f9e331c
11 changed files with 539 additions and 0 deletions
45
solutions/4/q445/solution.go
Normal file
45
solutions/4/q445/solution.go
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package q445
|
||||
|
||||
type ListNode struct {
|
||||
Val int
|
||||
Next *ListNode
|
||||
}
|
||||
|
||||
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
var a1, a2 []*ListNode
|
||||
for l1 != nil {
|
||||
a1 = append(a1, l1)
|
||||
l1 = l1.Next
|
||||
}
|
||||
for l2 != nil {
|
||||
a2 = append(a2, l2)
|
||||
l2 = l2.Next
|
||||
}
|
||||
|
||||
ret := make([]ListNode, max(len(a1), len(a2))+1)
|
||||
for i := range ret {
|
||||
if i < len(a1) {
|
||||
ret[i].Val += a1[len(a1)-1-i].Val
|
||||
}
|
||||
if i < len(a2) {
|
||||
ret[i].Val += a2[len(a2)-1-i].Val
|
||||
}
|
||||
if ret[i].Val > 9 {
|
||||
ret[i+1].Val += ret[i].Val / 10
|
||||
ret[i].Val %= 10
|
||||
}
|
||||
|
||||
if i > 0 {
|
||||
ret[i].Next = &ret[i-1]
|
||||
}
|
||||
}
|
||||
|
||||
for i := len(ret) - 1; i >= 0; i-- {
|
||||
if ret[i].Val > 0 {
|
||||
return &ret[i]
|
||||
}
|
||||
}
|
||||
return &ret[0]
|
||||
}
|
||||
|
||||
var _ = addTwoNumbers
|
||||
Loading…
Add table
Add a link
Reference in a new issue