博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift]LeetCode41. 缺失的第一个正数 | First Missing Positive
阅读量:4969 次
发布时间:2019-06-12

本文共 3532 字,大约阅读时间需要 11 分钟。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

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 constant extra space.


 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

示例 1:

输入: [1,2,0]输出: 3

示例 2:

输入: [3,4,-1,1]输出: 2

示例 3:

输入: [7,8,9,11,12]输出: 1

说明:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。


8ms

1 class Solution {2     func firstMissingPositive(_ nums: [Int]) -> Int {3         if nums.count == 0 {
return 1}4 var nums = nums5 for i in 0..
= 1 && nums[i] <= nums.count && nums[nums[i] - 1] != nums[i] {nums.swapAt(i, nums[i] - 1)}}6 for i in 0..

12ms

1 class Solution { 2     func firstMissingPositive(_ nums: [Int]) -> Int { 3         guard nums.count > 0 else { 4             return 1 5         } 6         var numsCopy = nums 7         for  i in 0..
0 && numsCopy[i] < nums.count && numsCopy[numsCopy[i]-1] != numsCopy[i] { 9 numsCopy.swapAt(i, numsCopy[i]-1)10 }11 }12 13 for i in 0..

12ms

1 class Solution { 2     func firstMissingPositive(_ nums: [Int]) -> Int { 3     var newNums = nums 4     for i in 0..
i + 1 && newNums[i] <= nums.count && newNums[i] != newNums[newNums[i]-1] { 6 if newNums[i] <= nums.count && newNums[i] != newNums[newNums[i]-1] { 7 let temp = newNums[i] 8 newNums[i] = newNums[temp-1] 9 newNums[temp-1] = temp10 }11 }12 if newNums[i] > 0 && i + 1 > newNums[i] {13 let temp = newNums[i]14 newNums[i] = newNums[temp-1]15 newNums[temp-1] = temp16 }17 }18 var i = 019 while i < nums.count {20 if i + 1 != newNums[i] {21 return i + 122 }23 i = i + 124 }25 return i + 126 }27 }

 16ms

1 class Solution { 2     func firstMissingPositive(_ nums: [Int]) -> Int { 3         var set = Set
() 4 5 nums.forEach { set.insert($0) } 6 7 for i in 0..

16ms

1 class Solution { 2     func firstMissingPositive(_ nums: [Int]) -> Int { 3         if(nums.count == 0){ return 1 } 4         let maximum = nums.max()! 5         if(maximum > 0){ 6             for i in 1...maximum{ 7                 if(!nums.contains(i)){ 8                     return i 9                 }10             }11         }12         return maximum + 113     }14 }

20ms

1 class Solution { 2     func firstMissingPositive(_ nums: [Int]) -> Int { 3         var nums = nums 4         nums.append(-1) 5          6         if nums.count == 0 {
return 1} 7 if nums.count == 1 { return nums[0] == 1 ? 2 : 1 } 8 9 for i in 0..
= 0 && nums[val] != val {12 swap(&nums, i, val)13 val = nums[i]14 }15 if val != i {16 nums[i] = -117 }18 }19 for i in 1..

32ms

1 class Solution {2     func firstMissingPositive(_ nums: [Int]) -> Int {3         for i in 1 ..< Int.max {4             if !nums.contains(i) { return i }5         }6         7         return Int.max8     }9 }

 

转载于:https://www.cnblogs.com/strengthen/p/9901428.html

你可能感兴趣的文章
【批处理学习笔记】第二十三课:用户变量和变量引用
查看>>
鸽巢原理(抽屉原理)的详解
查看>>
SSH整合之could not initialize proxy异常解决方案
查看>>
吴恩达“机器学习”——学习笔记七
查看>>
并查集 P3367 【模板】并查集
查看>>
CentOS 6.4下PXE+Kickstart无人值守安装操作系统
查看>>
2017 ACM-ICPC 南宁区比赛 Minimum Distance in a Star Graph
查看>>
notepad正则表达式
查看>>
When a function requires a pointer, it's not only an out value...
查看>>
SpringMVC 异常处理3种方案
查看>>
常见的media断点
查看>>
Oracle记录-开启与关闭数据库
查看>>
数据库三范式
查看>>
看完漫画秒懂区块链
查看>>
开发工具,做一个有效率的开发者
查看>>
对Haskell这门语言的基本认识
查看>>
zbb20171013 Windows 下端口占用 查询 以及结束进程的方法
查看>>
zbb20181007 maven 将任意jar安装到本地仓库中
查看>>
Recon-ng框架基础操作
查看>>
写完批处理脚本,再写个Gradle脚本,解放双手
查看>>