func firstMissingPositive(_ nums: [Int]) -> Int {
var index = 0
var nums = nums
while index < nums.count {
if nums[index] >= 1 && nums[index] <= nums.count && nums[index] != index + 1 && nums[nums[index]-1] != nums[index] {
nums.swapAt(index, nums[index]-1)
} else {
index+=1
}
}
for i in 0..<nums.count {
if nums[i] != i+1 {
return i+1
}
}
return nums.count+1
}
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme