博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-First Missing Positive
阅读量:6817 次
发布时间:2019-06-26

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

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.

 

题解:这道题目比较简单,需要注意的是几个陷阱:数组为空,数组里数据重复。

比较有技巧的地方是O(1)space,因为考虑到数据重复,此处只能排序, 这就要求重用nums数组空间。

引用网上一位网友的题解:

Put each number in its right place.For example:When we find 5, then swap it with A[4].At last, the first place where its number is not right, return the place + 1.

程序:

1 class Solution { 2 public: 3     int firstMissingPositive(vector
& nums) { 4 for (int i = 0; i < nums.size(); i++) 5 { 6 while (nums[i] > 0 && nums[i] <= nums.size() && nums[i] != nums[nums[i] -1]) 7 { 8 swap(nums[i], nums[nums[i] -1]); 9 }10 }11 for (int i = 0; i < nums.size(); i++)12 {13 if (nums[i] != i + 1)14 {15 return i + 1;16 }17 }18 return nums.size() + 1;19 }20 };

 

转载地址:http://xabzl.baihongyu.com/

你可能感兴趣的文章
python生成随机验证码
查看>>
续上篇LVS脚本
查看>>
jenkins安装
查看>>
RPMBUILD
查看>>
HDC与CDC
查看>>
MySQL常用函数(转)
查看>>
VC编程之标题栏和菜单
查看>>
vs 2008下安装detours3.0
查看>>
网站防篡改脚本
查看>>
第 8 章 容器网络 - 068 - 分析 Calico 的网络结构
查看>>
全面掌握ping命令(三) ping命令防火墙设置
查看>>
GhostDoc使用与原始注释
查看>>
简单的邮件协议服务介绍
查看>>
宏和函数的区别
查看>>
Dubbo架构设计详解
查看>>
常用十大python机器学习库
查看>>
手机游戏渠道SDK接入工具项目分享(一)缘起
查看>>
如何做好一个程序员
查看>>
Python学习笔记__12.3章 base64
查看>>
Python学习笔记__8.4章 文档测试
查看>>