dengxinyi пре 6 година
родитељ
комит
af3b2f92ba
2 измењених фајлова са 36 додато и 2 уклоњено
  1. 21 2
      medium/456.132-pattern.go
  2. 15 0
      medium/462.minimum-moves-to-equal-array-elements-ii.go

+ 21 - 2
medium/456.132-pattern.go

@@ -3,6 +3,25 @@ func find132pattern(nums []int) bool {
 	if n < 3 {
 		return false
 	}
-	one, three, two := 0, 1, 2
-	for one < 
+	one, three, two := 0, -1, 0
+	for {
+		for one = three + 1; one < n-1 && nums[one+1] <= nums[one]; one++ {
+		}
+		if n-2 <= one {
+			break
+		}
+		for three = one; three < n-1 && nums[three] <= nums[three+1]; three++ {
+		}
+		if n-1 <= three {
+			break
+		} else if three == one {
+			continue
+		}
+		for two = three + 1; two < n; two++ {
+			if nums[one] < nums[two] && nums[two] < nums[three] {
+				return true
+			}
+		}
+	}
+	return false
 }

+ 15 - 0
medium/462.minimum-moves-to-equal-array-elements-ii.go

@@ -0,0 +1,15 @@
+func minMoves2(nums []int) (min int) {
+	sort.Ints(nums)
+	mid := nums[len(nums)/2]
+	for _, i := range nums {
+		min += abs(mid - i)
+	}
+	return
+}
+
+func abs(x int) int {
+	if x < 0 {
+		return -x
+	}
+	return x
+}