题解 | #缺失的第一个正整数# [S-P1]

缺失的第一个正整数

http://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5

[S-P3]: 由于不重复,缺少的正整数值属于[1, n+1], e.g.
[1,2,3,4,5] => 6
[1,2,3,4,6] => 5
import java.util.*;

// 缺少的正整数值属于[1, n+1]
public class Solution {
    public int minNumberDisappeared (int[] nums) {
      int n = nums.length;
      for (int i = 0; i < n; i++) {
        while (nums[i] != i+1 && nums[i] > 0 && nums[i] <= n) {
          // e.g. if nums[0] = 3, swap nums[0] with nums[3-1=2]
          swap(i, nums[i]-1, nums);
        }
      }
  
      for (int i = 0; i < n; i++) {
        if (nums[i] != i+1) return i+1;
      }
      
      return n+1;
    }
  
    void swap(int i, int j, int[] nums) {
      int tmp = nums[i];
      nums[i] = nums[j];
      nums[j] = tmp;
    }
}
全部评论

相关推荐

CARLJOSEPH...:宝宝你戾气太大了
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务