示例1:
输入:[1,2,3,4]
输出:5
示例2:
输入:[-1,0,1,2,0]
输出:3
示例3:
输入:[1,2,3]
输出:4
示例4:
输入:[-1,0,-2]
输出:1
示例5:
输入:[0,9,-1,2]
输出:1
思路分析:
//按照正整数 :1,2,3。。。从1开始遍历,去数组里找,找不到谁谁就是结果。 这样的话时间复杂度o(N*M)M为结果数据的对应的数字。
//所以不符合题目要求。
先按照此种基本方法实现1:
public static int FindMinPositiveInteger(int[] nums){ for (int i = 1; i <= nums.length; i++) { //从1开始循环,至多数组长度 Boolean flag = false; //是否找到i的标记 int j =0; while (j<nums.length){ //循环数组找i if(nums[j]==i){ //如果找到i 标记为true 跳出循环 flag = true; break; } j++; // flag = false; //这句代代码多余了 } if(!flag){ //如果未找到,那么当前i就是不存在的最小正整数 return i; } } return nums.length+1;