程式語言 - LeetCode - C++ - 645. Set Mismatch



題目:


解答:

class Solution {
public:
    vector<int> findErrorNums(vector<int>& nums) {
        int n = nums.size();
        int dup = 0;
        int miss = 0;

        for (int x : nums) {
            int idx = abs(x) - 1;

            if (nums[idx] < 0) {
                dup = abs(x);
            }
            else {
                nums[idx] *= -1;
            }
        }

        for (int i = 0; i < n; ++i) {
            if (nums[i] > 0) {
                miss = i + 1;
            }
        }

        return { dup, miss };
    }
};