41. 缺失的第一个正数 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. class Solution { public int firstMissingPositive(int[] nums) { int[] m = new int[nums.leng…
缺失的第一个正数 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 虽然不能再另外开辟非常数级的额外空间,但是可以在输入数组上就地进行swap操作. 思路:交换数组元素,使得数组中第i位存放数值(i+1).最后遍历数组,寻找第一个不符合此要求的元素,返回其…
Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3 Example 2: Input: [3,4,-1,1] Output: 2 Example 3: Input: [7,8,9,11,12] Output: 1 Note: Your algorithm should run in O(n) time and uses co…
题目描述 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 解题思路 本题让只能使用常数级别的空间,所以哈希的解法只能放弃了.考虑另一种思路,把数字依次放到他们对应的位置上,比如1放到第一个(数组第0个)位置上,2放到第二个(数组第1个)位置上,通过交换可…
time O(n) space O(1) class Solution { public: int firstMissingPositive(vector<int>& nums) { //从1开始将范围内的整数交换到对应的位置 int len=nums.size(); ; ;i<len;i++){ int x=i; /*//show every state before swap cout<<"nums["<<i<<&quo…
LeetCode:缺失的第一个正数[41] 题目描述 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3示例 2: 输入: [3,4,-1,1] 输出: 2示例 3: 输入: [7,8,9,11,12] 输出: 1说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 题目分析 参照链接:https://leetcode-cn.com/problems/first-missing-positive/solution/tong…
给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0]输出: 3示例 2: 输入: [3,4,-1,1]输出: 2示例 3: 输入: [7,8,9,11,12]输出: 1说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positive著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. c…
给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/first-missing-positive 分析: 要求时间复杂度为O(N),并且只能使用常数级别的…
LeetCode 缺失的第一个正数 题目描述 给你一个未排序的整数数组 nums,请你找出其中没有出现的最小的正整数. 进阶:你可以实现时间复杂度为 O(n)并且只使用常数级别额外空间的解决方案吗? 示例 1: 输入:nums = [1,2,0] 输出:3 示例 2: 输入:nums = [3,4,-1,1] 输出:2 示例 3: 输入:nums = [7,8,9,11,12] 输出:1 Java 解法 /** * @author zhkai * @date 2021年3月29日13:51:23…
Hard! 题目描述: 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间. 解题思路: 这道题让我们找缺失的首个正数,由于限定了O(n)的时间,所以一般的排序方法都不能用. 最开始没有看到还限制了空间复杂度,所以想到了用HashSet来解,这个思路很简单,第…