给一个未排序的数组,找出第一个缺失的正整数。
例如,
[1,2,0] 返回 3,
[3,4,-1,1] 返回 2。
你的算法应该在 O(n) 的时间复杂度内完成并且使用常数量的空间。
详见:https://leetcode.com/problems/first-missing-positive/description/

Java实现:

class Solution {
public int firstMissingPositive(int[] nums) {
int n=nums.length;
if(n<1||nums==null){
return 1;
}
for(int i=0;i<n;++i){
while(nums[i]>0&&nums[i]<=n&&nums[i]!=nums[nums[i]-1]){
int tmp=nums[nums[i]-1];
nums[nums[i]-1]=nums[i];
nums[i]=tmp;
}
}
for(int i=0;i<n;++i){
if(nums[i]!=i+1){
return i+1;
}
}
return n+1;
}
}

参考:https://www.cnblogs.com/grandyang/p/4395963.html

最新文章

  1. BC一周年练习赛
  2. 三分钟玩转jQuery.noConflict()
  3. ssh框架介绍
  4. MongoDB 3.0以上版本设置访问权限、设置用户
  5. Winform中的PictureBox读取图像文件无法释放的问题
  6. 【转】AngularJs $location获取url参数
  7. 1203.4——循环语句 之 for
  8. Android笔记之网络-基本了解
  9. [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
  10. Factom(公证通)--基于区块链的存证系统
  11. jQuery使用(十四):extend()方法
  12. Idea 创建控制台程序
  13. 阿里云 ACP 考试学习过程分享
  14. Spring Boot搭建Web项目常用功能
  15. RabbitMQ基本概念和原理
  16. JavaScript 设计模式的七大原则(未完成)
  17. vba编程基础1
  18. css设计技巧
  19. [转帖]overlay文件系统解析
  20. JAVAEE——宜立方商城10:使用freemarker实现网页静态化、ActiveMq同步生成静态网页、Sso单点登录系统分析

热门文章

  1. python-多线程2-线程同步
  2. Struts2与ServletAPI解耦
  3. java中路径的获取
  4. 用linqpad来插入多条数据
  5. check_MK安装部署(nagios4版本)
  6. JS---设置简易红绿灯
  7. python管理Windows服务
  8. java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
  9. JavaScript高级程序设计学习笔记第二章
  10. url&amp;nbsp;传递参数(特殊字符)解决方法