算法分析课每周练习 First Missing Positive
2017-06-26 16:32
330 查看
题目
First Missing Positive
Given an unsorted integer array, find the first missing positive integer.
For example,
Given
and
Your algorithm should run in O(n) time and uses constant space.
分析
如果把该array中的n放在第n个位置上,那么遍历一遍后,第一个位置上不符合的就是要求的值
class Solution(object):
def firstMissingPositive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
L=len(nums)
for m in range(L):
if nums[m]>L:
continue
val = nums[m]-1
while nums[m]>0 and val<L and nums[val] != nums[m]:
nums[m],nums[val]=nums[val],nums[m]
val = nums[m]-1
for m in range(len(nums)):
if nums[m] != m +1:
return m +1
return L+1注:解法比较取巧,好像也没其他方法,感觉没有什么应用价值,不知为什么是top interview question
First Missing Positive
Given an unsorted integer array, find the first missing positive integer.
For example,
Given
[1,2,0]return
3,
and
[3,4,-1,1]return
2.
Your algorithm should run in O(n) time and uses constant space.
分析
如果把该array中的n放在第n个位置上,那么遍历一遍后,第一个位置上不符合的就是要求的值
class Solution(object):
def firstMissingPositive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
L=len(nums)
for m in range(L):
if nums[m]>L:
continue
val = nums[m]-1
while nums[m]>0 and val<L and nums[val] != nums[m]:
nums[m],nums[val]=nums[val],nums[m]
val = nums[m]-1
for m in range(len(nums)):
if nums[m] != m +1:
return m +1
return L+1注:解法比较取巧,好像也没其他方法,感觉没有什么应用价值,不知为什么是top interview question
相关文章推荐
- 算法练习(15):First Missing Positive
- 算法分析课每周练习 Wildcard Matching
- 算法分析课每周练习 Minimum Window Substring
- LeetCode Online Judge 题目C# 练习 - First Missing Positive
- 算法分析课每周练习 Longest Increasing Path in a Matrix
- 算法分析课每周练习 Word Search II
- 算法分析课每周练习 Serialize and Deserialize Binary Tree
- 算法分析课每周练习 Binary Tree Maximum Path Sum
- 算法分析课每周练习 Max Points on a Line
- 算法分析课每周练习 Regular Expression Matching
- 算法分析课每周练习 Merge k Sorted Lists
- 算法分析课每周练习 Sliding Window Maximum
- 算法分析课每周练习 Trapping Rain Water
- 算法分析课每周练习 The Skyline Problem
- 算法分析课每周练习 Find Median from Data Stream
- 算法分析课每周练习 Median of Two Sorted Arrays
- 算法分析课每周练习 LRU Cache
- 【LeetCode算法练习(C++)】First Missing Positive
- 算法——First Missing Positive
- 算法分析课每周练习 Count of Smaller Numbers After Self