leetcode刷题笔记(Golang)--41. First Missing Positive

41. First Missing Positive
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

解题视频,视频说先桶排序然后进行遍历求解

func firstMissingPositive(nums []int) int {
	if len(nums) == 0 {
		return 1
	}
	lg := len(nums)
	for i := range nums {
		for nums[i] > 0 && nums[i] < lg && nums[nums[i]-1] != nums[i] {
			nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1]
		}
	}

	for i, v := range nums {
		if i+1 != v {
			return i + 1
		}
	}
	return lg + 1
}
发布了65 篇原创文章 · 获赞 0 · 访问量 397

猜你喜欢

转载自blog.csdn.net/weixin_44555304/article/details/104238746