题解 | #没有出现的编号#
没有出现的编号
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}; } }