41.|41. First Missing Positive
文章图片
image.png 【41.|41. First Missing Positive】因为数组内部本身可能就有负数,所以不能把index为a[i]的遍历变成负数来标记这个index是不是存在
但是可以swap,在index为i的位置,一定是跟index为a[i]-1的数交换,有2中情况停止交换
- index为a[i]-1的数就是i
- a[i]不是正数,这时候也没法交换
class Solution(object):
def firstMissingPositive(self, a):
"""
:type nums: List[int]
:rtype: int
"""
for i in range(len(a)):
if a[i]==i+1: continue
while 1<=a[i]<=len(a) and a[a[i]-1]!=a[i]:
t = a[i]-1
a[i], a[t] = a[t], a[i]
for i in range(len(a)):
if a[i]!=i+1: return i+1
return len(a)+1s=Solution()
print(s.firstMissingPositive([3,4,-1,1]))
推荐阅读
- 《读_Head_First_有感》_“命令模式”
- 影单漫谈(5)
- mac升级之(xcrun:|mac升级之:xcrun: error: invalid active developer path, missing xcrun)
- L3U1P2|L3U1P2 Dialogue(Missing the flight)
- codility|codility 之 MissingInteger
- Fourth|Fourth season twenty-first episode,Ross invited Rachel to his wedding,what will happen?
- topcoder|Topcoder SRM 661 Div1 Easy: MissingLCM
- 什么是前端开发中的|什么是前端开发中的 mobile first 策略
- 《Android第一行代码》first|《Android第一行代码》first reading 十
- 软工小白的First Blog