题解 | #没有出现的编号#
没有出现的编号
https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型一维数组
*/
//空间复杂度O(1):常数级辅助空间
//时间复杂度O(n):其中n为nums的长度
public int[] findMissingAndMaxNegative (int[] nums) {
// write code here
int min = Integer.MIN_VALUE; //最小负数
int max1 = 1; //最大正数
int max2 = Integer.MAX_VALUE; //最小正数
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
if(num < 0 && min < num)
min = num;
if(num > 0 && max1 < num){
max1 = num;
}
if(num > 0 && max2 > num){
max2 = num;
}
}
int left;
//最小正数为1的情况返回最大正数加一,最小正数不为1的情况返回一
left = max2 == 1 ? max1 + 1 : 1;
//没有正数的情况返回1
left = max2 == Integer.MAX_VALUE ? 1 : left;
return new int[]{left , min == Integer.MIN_VALUE ? 0 : min};
}
}

查看10道真题和解析