Leetcode 448. Find All Numbers Disappeared in an Array | | Leetcode 448. Find All Numbers Disappeared in an Array 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 123456789101112131415161718class Solution {public: 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; }}; Version 2 12345678910111213141516171819202122232425262728class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { vector<int> result; for(int i = 0; i < nums.size(); i++) { if(nums[i] == i + 1) { continue; } if(nums[i] != nums[nums[i] - 1]){ swap(nums[i], nums[nums[i] - 1]); i--; } } for(int i = 0; i < nums.size(); i++) { if(nums[i] != i + 1) { result.push_back(i + 1); } } return result; } private: void swap(int& a, int& b) { int temp = a; a = b; b = temp; }}; Reference https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏