邓心一 před 6 roky
rodič
revize
13cabeb26b
2 změnil soubory, kde provedl 35 přidání a 0 odebrání
  1. 18 0
      easy/665.non-decreasing-array.go
  2. 17 0
      easy/680.valid-palindrome-ii.go

+ 18 - 0
easy/665.non-decreasing-array.go

@@ -0,0 +1,18 @@
+func checkPossibility(nums []int) bool {
+	n := len(nums)
+	if n < 3 {
+		return true
+	}
+	cnt := 0
+	for i := 1; i < n && cnt <= 1; i++ {
+		if nums[i] < nums[i-1] {
+			cnt++ // Greedy
+			if i < 2 || nums[i-2] <= nums[i] {
+				nums[i-1] = nums[i]
+			} else {
+				nums[i] = nums[i-1]
+			}
+		}
+	}
+	return cnt <= 1
+}

+ 17 - 0
easy/680.valid-palindrome-ii.go

@@ -0,0 +1,17 @@
+func validPalindrome(s string) bool {
+	for l, r := 0, len(s)-1; l < r; l, r = l+1, r-1 {
+		if s[l] != s[r] {
+			return isPalindrome(s, l+1, r) || isPalindrome(s, l, r-1)
+		}
+	}
+	return true
+}
+
+func isPalindrome(s string, i, j int) bool {
+	for ; i < j; i, j = i+1, j-1 {
+		if s[i] != s[j] {
+			return false
+		}
+	}
+	return true
+}