当前位置: 代码迷 >> 综合 >> leetcode练习题 first-missing-positive
  详细解决方案

leetcode练习题 first-missing-positive

热度:27   发布时间:2023-12-15 09:52:47.0

解题思路

看了讨论区之后才有的思路,遍历数组,将元素i放到数组i - 1坐标下,之后遍历数组找到第一个不匹配的坐标,返回该坐标加一即为不在给定数组里的最小整数。

代码

class Solution {
public:int firstMissingPositive(int A[], int n) {int i = 0;while(i < n){if(A[i] > 0 && A[i] <= n && A[A[i] - 1] != A[i]){swap(A[i],A[A[i] - 1]);continue;}i++;}i = 0;while(i < n){if(A[i] != i + 1)break;i++;}return i + 1;}
};
  相关解决方案