LeetCode 448. Find All Numbers Disappeared in an Array

将数组内的数与数组下标建立联系,若某数在数组中出现过,则将下标为该数减1的数变为负数,最后统计该数组正数所对应的下标值。

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> disapperNums;
    int m;
    for (int i = 0; i < nums.size(); ++i) {
        m = abs(nums[i]) - 1;
        nums[m] = nums[m] > 0 ? -nums[m] : nums[m];
    }
    for (int i = 0; i < nums.size(); ++i ) {
        if (nums[i] > 0) {
            disapperNums.push_back(i + 1);
        }
    }
    return disapperNums;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容