Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254215
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-06-30 20:47:01

//First Missing Positive Total Accepted: 39228 Total Submissions: 171561 My Submissions Question Solution 
//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.
使用桶排序 交换节省空间的方式 找到不对应的第一个
public class FirstMissingPositive {


public static void main(String[] args) {
// TODO 自动生成的方法存根


}
public int firstMissingPositive(int[] nums) {
for(int i=0;i<nums.length;i++){  
            while(nums[i]!=i+1){  
                if(nums[i]<=0 ||nums[i]>=nums.length|| nums[i]==nums[nums[i]-1]) break;  
                int temp = nums[i];  
                nums[i] = nums[nums[i]-1];  
                nums[temp-1] = temp;  
            }  
              
        }  
        for(int i=0;i<nums.length;i++){  
            if(nums[i]!=i+1)  
                return i+1;  
        }  
        return nums.length+1;
}


}
阅读(877) | 评论(0) | 转发(0) |
0

上一篇:Combination Sum II

下一篇:Trapping Rain Water

给主人留下些什么吧!~~