题解 | #没有出现的编号#
没有出现的编号
https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320
知识点:数组 模拟
思路:读懂题意,找最大的负数,其实就是遍历一遍即可,找最小出现的正整数,同样也是模拟加上遍历,
编程语言:java
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ public static int[] findMissingAndMaxNegative(int[] numbers) { int[] answer = new int[2]; answer[0] = 1; Arrays.sort(numbers); // 对数组进行排序 int smallestPositive = 1; // 最小正整数的初始值设为1 for (int i = 0; i < numbers.length; i++) { if (numbers[i] < 0) { answer[1] = numbers[i]; // 更新最大的负数 } else if (numbers[i] > 0) { if (numbers[i] != smallestPositive) { answer[0] = smallestPositive; // 更新缺失的最小正整数 break; } smallestPositive++; // 更新最小正整数 } } answer[0] = smallestPositive; // 更新缺失的最小正整数 return answer; } }