题解 | #没有出现的编号#
没有出现的编号
https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320
- 题目考察的知识点
数组,排序
- 题目解答方法的文字分析
首先将数组从小到大排序,然后遍历数组,分为两部分判断,当数组的值小于0时,遇到负数就赋给ans[1],因为越靠近数组右边负数越大。然后第二部分判断是否大于0,用p从最小正整数开始判断,看看哪一个没有出现。
- 本题解析所用的编程语言
java
- 完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型一维数组
*/
public int[] findMissingAndMaxNegative (int[] nums) {
int[] ans = new int[2];
ans[0] = 1;
Arrays.sort(nums);
int p=1;
for(int i=0;i<nums.length;i++){
//判断最大负数是哪个
if(nums[i]<0){
ans[1] = nums[i];
}else if(nums[i]>0){
//判断是否是没出现的最小正整数
if(nums[i]!=p){
ans[0]=p;
break;
}
p++;
}
}
ans[0]=p;
return ans;
}
}