dengxinyi 6 سال پیش
والد
کامیت
0e767fe906
1فایلهای تغییر یافته به همراه22 افزوده شده و 0 حذف شده
  1. 22 0
      easy/448.find-all-numbers-disappeared-in-an-array.go

+ 22 - 0
easy/448.find-all-numbers-disappeared-in-an-array.go

@@ -1,5 +1,27 @@
 func findDisappearedNumbers(nums []int) (res []int) {
 	n := len(nums)
+	for i := 0; i < n; i++ {
+		if idx := abs(nums[i]) - 1; 0 < nums[idx] {
+			nums[idx] = -nums[idx]
+		}
+	}
+	for i := 0; i < n; i++ {
+		if 0 < nums[i] {
+			res = append(res, i+1)
+		}
+	}
+	return
+}
+
+func abs(x int) int {
+	if x < 0 {
+		return -x
+	}
+	return x
+}
+
+func findDisappearedNumbersOn(nums []int) (res []int) { // O(n) extra space
+	n := len(nums)
 	set := make([]bool, n+1)
 	for _, i := range nums {
 		set[i] = true