class Solution func firstMissingPositive_ nums Int - Int var n Int = numscount for i in 0n while numsi 0 && numsi = n && numsnumsi - 1 != numsi swapnum
在给定的代码中,交换元素的操作使用了swap函数,但是在Swift中,swap函数只能交换两个变量的值,不能交换数组中的两个元素。正确的做法是使用临时变量来交换两个元素的值。修改后的代码如下所示:
class Solution {
func firstMissingPositive(_ nums: [Int]) -> Int {
var nums = nums
var n: Int = nums.count
for i in 0..<n {
while nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i] {
let temp = nums[i]
nums[i] = nums[temp - 1]
nums[temp - 1] = temp
}
}
for i in 0..<n {
if nums[i] != i + 1 {
return i + 1
}
}
return n + 1
}
}
这样修改后,代码就能正确地交换数组中的元素了
原文地址: https://www.cveoy.top/t/topic/isUL 著作权归作者所有。请勿转载和采集!