在给定的代码中,交换元素的操作使用了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
    }
}

这样修改后,代码就能正确地交换数组中的元素了

class Solution func firstMissingPositive_ nums Int - Int var n Int = numscount for i in 0n while numsi 0 && numsi = n && numsnumsi - 1 != numsi swapnum

原文地址: https://www.cveoy.top/t/topic/isUL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录