diff --git a/animation-simulation/数组篇/leetcode41缺失的第一个正数.md b/animation-simulation/数组篇/leetcode41缺失的第一个正数.md index 2dbe489..6c46f4d 100644 --- a/animation-simulation/数组篇/leetcode41缺失的第一个正数.md +++ b/animation-simulation/数组篇/leetcode41缺失的第一个正数.md @@ -83,6 +83,8 @@ class Solution { 题目代码: +Java Code: + ```java class Solution { public int firstMissingPositive(int[] nums) { @@ -115,3 +117,29 @@ class Solution { } ``` +Python3 Code: + +```py +class Solution: + def firstMissingPositive(self, nums: List[int]) -> int: + n = len(nums) + + def swap(nums, a, b): + temp = nums[a] + nums[a] = nums[b] + nums[b] = temp + i = 0 + while i < n: + num = nums[i] + # 已经就位 + if num <= 0 or num >= n or num == i + 1 or nums[num - 1] == num: + i += 1 + # 可以交换 + else: + swap(nums, i, num - 1) + for i in range(n): + if nums[i] != i + 1: + return i + 1 + return n + 1 +``` +