【Leetcode】【python】First Missing Positive
来源:互联网 发布:mac windows 10驱动 编辑:程序博客网 时间:2024/06/05 12:04
题目大意
给定一个未经排序的数组,寻找第一个缺失的正整数
你的算法应该满足O(n)时间和常数空间复杂度
解题思路
参考:http://bookshadow.com/weblog/2015/09/14/leetcode-first-missing-positive/
尽可能地把数组中不大于n(n为数组长度)的正整数放置到下标+1与其数值相同的位置上
第一个下标+1与数值不同的数字,即为所求。
例如数组nums = [3,4,-1,1],调整位置后的结果为:[1,-1,3,4]
除第二个数字外,其余数字均满足nums[i] = i + 1,因此返回2
代码
class Solution(object): def firstMissingPositive(self, nums): """ :type nums: List[int] :rtype: int """ n = len(nums) for i in range(n): # print nums[i], i + 1, nums[nums[i] - 1] while nums[i] > 0 and nums[i] <= n and nums[i] != i + 1 and nums[i] != nums[nums[i] - 1]: nums[nums[i] - 1], nums[i] = nums[i], nums[nums[i] - 1] # print nums for i in range(n): if i + 1 != nums[i]: return i + 1 return n + 1
总结
tricky题目
阅读全文
0 0
- 【Leetcode】【python】First Missing Positive
- 41. First Missing Positive Leetcode Python
- LeetCode: First Missing Positive
- LeetCode First Missing Positive
- LeetCode: First Missing Positive
- [Leetcode] First Missing Positive
- [LeetCode] First Missing Positive
- [Leetcode] First Missing Positive
- leetcode First Missing Positive
- LeetCode First Missing Positive
- [leetcode] first missing positive
- LeetCode: First Missing Positive
- [LeetCode]First Missing Positive
- LeetCode-First Missing Positive
- [leetcode] First Missing Positive
- [LeetCode] First Missing Positive
- LeetCode - First Missing Positive
- LeetCode | First Missing Positive
- 通过函数给指针申请内存时遇到的内存泄漏问题
- js的slice,substring,substr,split用法
- 取double类型的几位有效数字
- 关于Toolbar的使用小结
- LeetCode231 Power of Two
- 【Leetcode】【python】First Missing Positive
- java.sql.SQLException: No suitable driver 的详细解决办法
- win8 win10 安装msi 提示2502、2503的错误代码
- 寻找丑数,把只包含因子2、3和5的数称作丑数(Ugly Number)
- 递归算法求N的阶乘
- 如何一步一步提高图像分类准确率?
- mysql根据不同的条件对数据进行批量修改(navicat)
- NI CompactRIO嵌入式系统开发流程总结
- Softehter VPN配置及异常处理