数组中未出现的最小正整数

数组中未出现的最小正整数

https://www.nowcoder.com/practice/8cc4f31432724b1f88201f7b721aa391?tpId=117&tqId=37800&rp=1&ru=%2Fta%2Fjob-code-high&qru=%2Fta%2Fjob-code-high%2Fquestion-ranking&tab=answerKey

 public int minNumberdisappered (int[] arr) {
        // write code here
        //原地处理数组 将数组中数字i放在i-1的位置 
        for(int i=0;i<arr.length;i++){
            //保证数组中处理的数字不越界
            if(arr[i]>0 && arr[i]<=arr.length){
                swap(i,arr[i]-1,arr);
            }
        }
        for(int i=0;i<arr.length;i++){
            if(i+1!=arr[i]) return i+1;
        }
        return arr.length+1;
    }
    private void swap(int i,int j,int[] arr){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务