Skip to content

Commit 59725c1

Browse files
aQuaaQua
aQua
authored and
aQua
committed
精简了最快的答案
1 parent fafabad commit 59725c1

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

Algorithms/0041.first-missing-positive/first-missing-positive.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import (
66

77
func firstMissingPositive(nums []int) int {
88
for i := 0; i < len(nums); i++ {
9-
index := nums[i] - 1
10-
if nums[i] < 1 || nums[i] > len(nums) || index < 0 || index > len(nums) || nums[i] == i+1 {
11-
// cannot swap or noused
12-
continue
13-
}
14-
for nums[i] >= 1 && nums[i] <= len(nums) && nums[i] != nums[nums[i]-1] {
9+
10+
fmt.Println(i)
11+
12+
for 0 <= nums[i]-1 && nums[i]-1 < len(nums) && nums[i] != nums[nums[i]-1] {
13+
// 0 <= nums[i]-1 && nums[i]-1 < len(nums) 是为了防止nums[nums[i]-1]溢出
1514
nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]
15+
1616
fmt.Println(nums)
17+
1718
}
1819
}
1920

Algorithms/0041.first-missing-positive/first-missing-positive_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,16 @@ func Test_Problem0041(t *testing.T) {
2929

3030
qs := []question{
3131

32+
question{
33+
para{[]int{10, -1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, -3}},
34+
ans{6},
35+
},
36+
37+
question{
38+
para{[]int{10, -1, 8, 6, 7, 3, -2, 5, 4, 2, 1, -3}},
39+
ans{9},
40+
},
41+
3242
question{
3343
para{[]int{1}},
3444
ans{2},

0 commit comments

Comments
 (0)