leetcode 448 Find All Numbers Disappeared in an Array C++

来源:互联网 发布:淘宝网 无法购买 编辑:程序博客网 时间:2024/06/05 09:19

这题我先是用了计数排序,AC。

然后看他的要求,不符合,后来看了discussion,把存在的位置变成负数,太妙了,既保留了原有信息,又做了标记。


    vector<int> findDisappearedNumbers(vector<int>& nums) {        vector<int> result;        for (int i = 0;i<nums.size();i++) {            int index = abs(nums[i]) - 1;            if (nums[index] > 0) nums[index] = -nums[index];        }        for (int i = 0;i<nums.size();i++) {            if (nums[i] > 0) {                result.push_back(i + 1);            }        }        return result;    }


0 0
原创粉丝点击