本文主要是介绍LeetCode41. First Missing Positive,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、题目
- 二、题解
一、题目
Given an unsorted integer array nums, return the smallest missing positive integer.
You must implement an algorithm that runs in O(n) time and uses O(1) auxiliary space.
Example 1:
Input: nums = [1,2,0]
Output: 3
Explanation: The numbers in the range [1,2] are all in the array.
Example 2:
Input: nums = [3,4,-1,1]
Output: 2
Explanation: 1 is in the array but 2 is missing.
Example 3:
Input: nums = [7,8,9,11,12]
Output: 1
Explanation: The smallest positive integer 1 is missing.
Constraints:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
二、题解
class Solution {
public:int firstMissingPositive(vector<int>& nums) {int n = nums.size();for(int i = 0;i < n;i++){while(nums[i] > 0 && nums[i] <= n && nums[nums[i]-1] != nums[i]){swap(nums[nums[i]-1],nums[i]);}}for(int i = 0;i < n;i++){if(nums[i] != i + 1) return i + 1;}return n + 1;}
};
这篇关于LeetCode41. First Missing Positive的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!