博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
边工作边刷题:70天一遍leetcode: day 33-1
阅读量:4359 次
发布时间:2019-06-07

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

First Missing Positive

要点:因为值是range固定的,所以利用了slot的index作为mark。注意内循环的条件是目标的value和index不匹配而不是当前值所在slot的index,因为当前slot对应的值可能不存在,就算存在,也应该由其他slot移动过来。

错误点:

  • 值的有效范围是1到len(nums),所以如果全有,返回len(nums)+1
  • 注意下标的范围是0到len(nums)-1,所以在对应下标和值时要做范围检查。
class Solution(object):    def firstMissingPositive(self, nums):        """        :type nums: List[int]        :rtype: int        """        for i in range(len(nums)):            while nums[i]>0 and nums[i]<=len(nums) and nums[i]!=nums[nums[i]-1]:                tmp = nums[nums[i]-1]                nums[nums[i]-1]=nums[i]                nums[i]=tmp                    for i in range(len(nums)):            if nums[i]!=i+1:                return i+1                        return len(nums)+1

转载于:https://www.cnblogs.com/absolute/p/5678178.html

你可能感兴趣的文章
20155212 2017-2018-1 《信息安全系统设计》第7周学习总结
查看>>
新手C#ListView使用记录2018.08.03
查看>>
1028: 可乐(2018年中南大学研究生复试机试题 )
查看>>
珍藏的最全的windows操作系统快捷键
查看>>
【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
查看>>
二叉树结点删除操作
查看>>
图论-单源最短路-SPFA算法
查看>>
转换文件的字符集
查看>>
prometheus + grafana安装部署(centos6.8)
查看>>
Redis和Memcached的区别【转】
查看>>
VMware: Deploy multiple VM’s from template with PowerCLI
查看>>
Cascaded pose regression
查看>>
model,map,MapAndVivew用于页面跳转时候使用的即跳转后才添加属性 这样再回调中无法使用 因为回调的前提是页面不调转;解决的方法是用responsewrite(普通的字符响应)...
查看>>
自动在数据库中创建表
查看>>
如何在一个进程中启动另外一个线程:ProcessStartInfo Constructor
查看>>
树状数组模板题 P1904
查看>>
Kerberos安装及使用
查看>>
android 布局中 layout_gravity、gravity、orientation、layout_weight
查看>>
highcharts
查看>>
【学员管理系统】0x02 学生信息管理功能
查看>>