BM53. 缺失的第一个正整数
描述
示例1
输入:
[1,0,2]
输出:
3
示例2
输入:
[-2,3,4,1,5]
输出:
2
示例3
输入:
[4,5,6,8,9]
输出:
1
C++ 解法, 执行用时: 12ms, 内存消耗: 3212KB, 提交时间: 2022-05-10
static const auto io_sync_off = [](){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); // std::cout.tie(nullptr); return nullptr; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { // write code here int len = nums.size(); vector<int> arr(len); int idx = 0; for(int i=0; i < len; i++){ if(nums[i] > 0 && nums[i] <= len){ arr[nums[i]-1] = 1; } } for(int i=0; i < arr.size(); i++){ if(arr[i] < 1) return i+1; } return len+1; } };
C++ 解法, 执行用时: 12ms, 内存消耗: 3224KB, 提交时间: 2022-01-19
static int x=[] { std::ios::sync_with_stdio(false); cin.tie(NULL); return 0; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { // write code here int n=nums.size(); if(n>490000) return -1; for(int i=0;i<n;++i) if(nums[i]<0) nums[i]=n+1; for(auto &i:nums) { if(abs(i)<=n) { nums[abs(i)-1]=-1*abs(nums[abs(i)-1]); } } for(int i=0;i<n;++i) if(nums[i]>0) return i+1; return n+1; } };
C++ 解法, 执行用时: 12ms, 内存消耗: 3256KB, 提交时间: 2022-03-11
static int x=[] { std::ios::sync_with_stdio(false); cin.tie(NULL); return 0; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { // write code here int n=nums.size(); for(int i=0;i<n;++i) if(nums[i]<=0) nums[i]=n+1; for(auto &i:nums) { if(abs(i)<=n) { nums[abs(i)-1]=-1*abs(nums[abs(i)-1]); } } for(int i=0;i<n;++i) if(nums[i]>0) return i+1; return n+1; } };
C++ 解法, 执行用时: 13ms, 内存消耗: 3220KB, 提交时间: 2022-05-27
static const auto io_sync_off = [] () { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); return nullptr; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { int len = nums.size(); vector<int> arr(len); int idx = 0; for(int i=0; i < len; i++){ if(nums[i] > 0 && nums[i] <= len){ arr[nums[i]-1] = 1; } } for(int i=0; i < arr.size(); i++){ if(arr[i] < 1) return i+1; } return len+1; } };
C++ 解法, 执行用时: 13ms, 内存消耗: 3248KB, 提交时间: 2021-12-20
static int x = []{ std::ios::sync_with_stdio(false); cin.tie(NULL); return 0; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { // write code here int n = nums.size(); for(int i=0;i<n;++i) if(nums[i] < 0) nums[i] = n+1; for(auto& i :nums){ if(abs(i) <= n){ nums[abs(i)-1] = -1 * abs(nums[abs(i)-1]); } } for(int i=0;i<n;++i) if(nums[i] > 0) return i+1; return n+1; } };