add new solutions
This commit is contained in:
parent
886b5e0a8e
commit
67cad91898
47 changed files with 1549 additions and 1 deletions
29
solutions/3/q328/solution.go
Normal file
29
solutions/3/q328/solution.go
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package q328
|
||||
|
||||
type ListNode struct {
|
||||
Val int
|
||||
Next *ListNode
|
||||
}
|
||||
|
||||
func oddEvenList(head *ListNode) *ListNode {
|
||||
odd := &ListNode{}
|
||||
even := &ListNode{}
|
||||
pO, pE := odd, even
|
||||
|
||||
i := 0
|
||||
for p := head; p != nil; p = p.Next {
|
||||
i++
|
||||
if i%2 == 0 {
|
||||
pE.Next = p
|
||||
pE = p
|
||||
} else {
|
||||
pO.Next = p
|
||||
pO = p
|
||||
}
|
||||
}
|
||||
pE.Next = nil
|
||||
pO.Next = even.Next
|
||||
return odd.Next
|
||||
}
|
||||
|
||||
var _ = oddEvenList
|
||||
24
solutions/3/q334/solution.go
Normal file
24
solutions/3/q334/solution.go
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
package q334
|
||||
|
||||
import "math"
|
||||
|
||||
func increasingTriplet(nums []int) bool {
|
||||
if len(nums) < 3 {
|
||||
return false
|
||||
}
|
||||
|
||||
first, second := math.MaxInt, math.MaxInt
|
||||
|
||||
for _, x := range nums {
|
||||
if x <= first {
|
||||
first = x
|
||||
} else if x <= second {
|
||||
second = x
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
var _ = increasingTriplet
|
||||
41
solutions/3/q394/solution.go
Normal file
41
solutions/3/q394/solution.go
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
package q394
|
||||
|
||||
import "strings"
|
||||
|
||||
func decode(s string) (int, string) {
|
||||
advanced := 0
|
||||
number := 0
|
||||
buf := strings.Builder{}
|
||||
|
||||
Loop:
|
||||
for advanced < len(s) {
|
||||
advanced++
|
||||
cur := s[advanced-1]
|
||||
switch {
|
||||
case cur >= '0' && cur <= '9':
|
||||
number = 10*number + int(cur-'0')
|
||||
|
||||
case cur == '[':
|
||||
adv, child := decode(s[advanced:])
|
||||
advanced += adv
|
||||
for range number {
|
||||
buf.WriteString(child)
|
||||
}
|
||||
number = 0
|
||||
|
||||
case cur == ']':
|
||||
break Loop
|
||||
|
||||
default:
|
||||
buf.WriteByte(cur)
|
||||
}
|
||||
}
|
||||
return advanced, buf.String()
|
||||
}
|
||||
|
||||
func decodeString(s string) string {
|
||||
_, ret := decode(s)
|
||||
return ret
|
||||
}
|
||||
|
||||
var _ = decodeString
|
||||
Loading…
Add table
Add a link
Reference in a new issue