代码2(直接在原数组上进行交换, 空间代价为o(1)) classSolution {public:intfirstMissingPositive(vector<int>&nums) {if(nums.empty())return1; auto begin=getFirstPositivePos(nums);if(*begin <0)return1;for(auto it = begin; it !=n
class Solution { public: int firstMissingPositive(vector<int>& nums) { int n = nums.size(); for (int i = 0; i < n; ++i) { // 将nums[i]放到正确的位置,直到无法交换为止 while (nums[i] >= 1 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) { swap(nums[i], nums...
LeetCode-41 缺失的第一个正整数 链接:https://leetcode-cn.com/problems/first-missing-positive 题目描述 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例1: 输入:nums = [1,2,0] 输出:3 示例2: 输入...
class Solution: # 本题直接用个for循环即可# 本题需要注意的是给定的未排序数组列表nums里面可能有重复数字,所以下面判断相邻两个数大小关系的的时候需要注意 def firstMissingPositive(self, nums): """ :type nums: List[int]-->给定的未排序数组列表:rtype: int-->final_min_number """ # 定义最终找到...
https://leetcode-cn.com/problems/first-missing-positive/ Given an unsorted integer array, find the smallest missing positive integer. 题意 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数 。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。
fun firstMissingPositive(nums: IntArray): Int { val n = nums.size for (i in nums.indices) { while (nums[i] in 1..n && nums[nums[i] - 1] != nums[i]) { swap(i, nums[i] - 1, nums) } } for (i in nums.indices) { ...
34 Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置 Java Medium 35 Search Insert Position 搜索插入位置 Java Easy 36 Valid Sudoku 有效的数独 Java Medium 37 Sudoku Solver 解数独 Java Hard 41 First Missing Positive 缺失的第一个正数 Java Hard 42...
41 First Missing Positive Hard Solution 42 Trapping Rain Water Hard Solution 43 Multiply Strings Medium Solution 44 Wildcard Matching Hard Solution 45 Jump Game II Medium Solution 46 Permutations Medium Solution 47 Permutations II Medium Solution 48 Rotate Image Medium Solution 49 Group Anagrams Medium...
*/publicintfirstMissingPositive(int[]nums){for(inti=0;i<nums.length;i++){if(nums[i]!=i+1){// swap nums[i] with nums[nums[i] - 1]intcur=nums[i]-1;if(cur>=0&&cur<nums.length&&nums[cur]!=nums[i]){inttemp=nums[i];nums[i]=nums[cur];nums[cur]=temp;// 交换完以后的数字...
classSolution{publicintfirstMissingPositive(int[]nums){if(nums==null||nums.length==0){return0;}intlen=nums.length;for(inti=0;i<nums.length;i++){while(nums[i]>0&&nums[i]<=len&&nums[nums[i]-1]!=nums[i]){swap(nums,i,nums[i]-1);}}for(inti=0;i<len;i++){if(nums[i]!=i...