dengxinyi 6 anni fa
parent
commit
1167934cad

+ 18 - 0
easy/551.student-attendance-record-i.go

@@ -0,0 +1,18 @@
+func checkRecord(s string) bool {
+	a, l := 0, 0
+	for _, r := range s {
+		switch r {
+		case 'L':
+			l++
+		case 'A':
+			a++
+			fallthrough
+		default:
+			l = 0
+		}
+		if l == 3 || a == 2 {
+			return false
+		}
+	}
+	return true
+}

+ 15 - 0
easy/557.reverse-words-in-a-string-iii.go

@@ -0,0 +1,15 @@
+func reverseWords(s string) string {
+	beg, end, n := 0, 0, len(s)
+	res := make([]byte, n)
+	for end < n {
+		for beg = end; beg < n && s[beg] == ' '; beg++ {
+			res[beg] = ' '
+		}
+		for end = beg + 1; end < n && s[end] != ' '; end++ {
+		}
+		for l, r := beg, end-1; l <= r; l, r = l+1, r-1 {
+			res[l], res[r] = s[r], s[l]
+		}
+	}
+	return string(res)
+}

+ 27 - 0
easy/561.array-partition-i.go

@@ -0,0 +1,27 @@
+func arrayPairSum(nums []int) int {
+	set := [20001]int{}
+	for _, i := range nums {
+		set[i+10000]++
+	}
+	sum, flag := 0, 1
+	for i, val := range set {
+		if val != 0 {
+			if val&1 == 0 {
+				sum += val / 2 * (i - 10000)
+			} else {
+				sum += (val + flag) / 2 * (i - 10000)
+				flag ^= 1
+			}
+		}
+	}
+	return sum
+}
+
+func arrayPairSumSort(nums []int) int {
+	sort.Ints(nums)
+	sum := 0
+	for i := len(nums) - 2; 0 <= i; i -= 2 {
+		sum += nums[i]
+	}
+	return sum
+}

+ 31 - 0
easy/563.binary-tree-tilt.go

@@ -0,0 +1,31 @@
+/**
+ * Definition for a binary tree node.
+ * type TreeNode struct {
+ *     Val int
+ *     Left *TreeNode
+ *     Right *TreeNode
+ * }
+ */
+func findTilt(root *TreeNode) int {
+	tilt := 0
+	postorder(root, &tilt)
+	return tilt
+}
+
+func postorder(root *TreeNode, tilt *int) int {
+	if root == nil {
+		return 0
+	}
+	l := postorder(root.Left, tilt)
+	r := postorder(root.Right, tilt)
+	sum := l + r + root.Val
+	*tilt += abs(l - r)
+	return sum
+}
+
+func abs(x int) int {
+	if x < 0 {
+		return -x
+	}
+	return x
+}