Skip to content

Commit 36ab942

Browse files
committed
add new files
1 parent 35bde91 commit 36ab942

5 files changed

+120
-0
lines changed
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package main
2+
3+
import (
4+
"math"
5+
)
6+
7+
type TreeNode struct {
8+
Val int
9+
Left *TreeNode
10+
Right *TreeNode
11+
}
12+
13+
var st []int
14+
15+
func inorder(root *TreeNode) {
16+
if root == nil {
17+
return
18+
}
19+
if root.Left != nil {
20+
inorder(root.Left)
21+
}
22+
if root != nil {
23+
st = append(st, root.Val)
24+
}
25+
if root.Right != nil {
26+
inorder(root.Right)
27+
}
28+
}
29+
30+
func getMinimumDifference(root *TreeNode) int {
31+
st = make([]int, 0, 256)
32+
inorder(root)
33+
ret := math.MaxInt32
34+
for i := 1; i < len(st); i++ {
35+
if (st[i] - st[i-1]) < ret {
36+
ret = st[i] - st[i-1]
37+
}
38+
}
39+
return ret
40+
}

532. K-diff Pairs in an Array.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
func findPairs(nums []int, k int) int {
4+
if len(nums) == 0 || k < 0 {
5+
return 0
6+
}
7+
m := map[int]int{}
8+
for k, v := range nums {
9+
m[v] = k
10+
}
11+
res := 0
12+
for i := 0; i < len(nums); i++ {
13+
if val, ok := m[nums[i]+k]; ok && val != i {
14+
delete(m, nums[i]+k)
15+
res++
16+
}
17+
}
18+
return res
19+
}

541. Reverse String II.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package main
2+
3+
func reverseStr(s string, k int) string {
4+
t := []byte(s)
5+
for l := 0; ; l += 2 * k {
6+
r := l + k - 1
7+
if r >= len(t) {
8+
r = len(t) - 1
9+
}
10+
for i := l; i < r; i, r = i+1, r-1 {
11+
t[i], t[r] = t[r], t[i]
12+
}
13+
if (l + 2*k) >= len(t) {
14+
break
15+
}
16+
}
17+
return string(t)
18+
}

543. Diameter of Binary Tree.go

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
var ret int
4+
5+
//直径等于left最大深度+right最大深度+1
6+
func helper(root *TreeNode) int {
7+
if root == nil {
8+
return 0
9+
}
10+
left := helper(root.Left)
11+
right := helper(root.Right)
12+
if ret < left+right+1 {
13+
ret = left + right + 1
14+
}
15+
if left > right {
16+
return left + 1
17+
}
18+
return right + 1
19+
}
20+
21+
func diameterOfBinaryTree(root *TreeNode) int {
22+
ret = 0
23+
helper(root)
24+
if ret == 0 {
25+
return ret
26+
}
27+
return ret - 1
28+
}

551. Student Attendance Record I.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package main
2+
3+
import "strings"
4+
5+
func checkRecord(s string) bool {
6+
t := strings.Count(s, "A")
7+
if t >= 2 {
8+
return false
9+
}
10+
t = strings.Count(s, "LLL")
11+
if t > 0 {
12+
return false
13+
}
14+
return true
15+
}

0 commit comments

Comments
 (0)