add new solutions
This commit is contained in:
parent
67cad91898
commit
81cc2d3ba6
19 changed files with 693 additions and 14 deletions
|
|
@ -1 +1,22 @@
|
|||
package q435
|
||||
|
||||
import (
|
||||
"math"
|
||||
"slices"
|
||||
)
|
||||
|
||||
func eraseOverlapIntervals(intervals [][]int) int {
|
||||
slices.SortFunc(intervals, func(a, b []int) int { return a[1] - b[1] })
|
||||
|
||||
keep := 0
|
||||
end := math.MinInt
|
||||
for i := range intervals {
|
||||
if intervals[i][0] >= end {
|
||||
end = intervals[i][1]
|
||||
keep++
|
||||
}
|
||||
}
|
||||
return len(intervals) - keep
|
||||
}
|
||||
|
||||
var _ = eraseOverlapIntervals
|
||||
|
|
|
|||
46
solutions/4/q450/solution.go
Normal file
46
solutions/4/q450/solution.go
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
package q450
|
||||
|
||||
type TreeNode struct {
|
||||
Val int
|
||||
Left *TreeNode
|
||||
Right *TreeNode
|
||||
}
|
||||
|
||||
func del(node *TreeNode) *TreeNode {
|
||||
if node == nil || node.Left == nil && node.Right == nil {
|
||||
return nil // is leaf
|
||||
}
|
||||
if node.Left == nil {
|
||||
return node.Right
|
||||
}
|
||||
if node.Right == nil {
|
||||
return node.Left
|
||||
}
|
||||
|
||||
p := node.Left
|
||||
for p.Right != nil {
|
||||
p = p.Right
|
||||
}
|
||||
p.Right = node.Right
|
||||
return node.Left
|
||||
}
|
||||
|
||||
func findAndDel(node **TreeNode, key int) {
|
||||
if *node == nil {
|
||||
return
|
||||
}
|
||||
if (**node).Val == key {
|
||||
*node = del(*node)
|
||||
} else if key < (**node).Val {
|
||||
findAndDel(&(**node).Left, key)
|
||||
} else {
|
||||
findAndDel(&(**node).Right, key)
|
||||
}
|
||||
}
|
||||
|
||||
func deleteNode(root *TreeNode, key int) *TreeNode {
|
||||
findAndDel(&root, key)
|
||||
return root
|
||||
}
|
||||
|
||||
var _ = deleteNode
|
||||
Loading…
Add table
Add a link
Reference in a new issue