邓心一 6 年之前
父节点
当前提交
dce7d78e0e
共有 3 个文件被更改,包括 34 次插入4 次删除
  1. 26 0
      hard/41.go
  2. 5 0
      hard/42.go
  3. 3 4
      hard/51.go

+ 26 - 0
hard/41.go

@@ -0,0 +1,26 @@
+package main
+
+func firstMissingPositive(nums []int) int {
+	n := len(nums) // n nums can only fill 1~n, then n+1 is the answer
+	// If not, place each number in its right place, the 1st wrong place is the answer
+	for i := range nums {
+		for 0 < nums[i] && nums[i] <= n && nums[nums[i]-1] != nums[i] { // Keep swapping untill correct!
+			nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]
+		}
+	}
+	for i := range nums {
+		if nums[i] != i+1 {
+			return i + 1
+		}
+	}
+	return n + 1
+}
+
+// func main() {
+// 	n := []int{7, 8, 9, 11, 12}
+// 	println(firstMissingPositive(n))
+// 	n = []int{3, 4, -1, 1}
+// 	println(firstMissingPositive(n))
+// 	n = []int{1, 2, 3}
+// 	println(firstMissingPositive(n))
+// }

+ 5 - 0
hard/42.go

@@ -0,0 +1,5 @@
+package main
+
+func main() {
+
+}

+ 3 - 4
hard/51.go

@@ -1,7 +1,6 @@
 package main
 
 import (
-	"fmt"
 	"strings"
 )
 
@@ -51,6 +50,6 @@ func solveNQueens(n int) (solutions [][]string) {
 	}
 }
 
-func main() {
-	fmt.Println(solveNQueens(9))
-}
+// func main() {
+// 	fmt.Println(solveNQueens(9))
+// }