题解 | #没有出现的编号#

没有出现的编号

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-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务