第三题 O(N) O(1) public int firstMissingPositive2 (int[] A) { int left = 0; int right = A.length; while(left<right){ if(A[left]==left+1){ left++; }else if(A[left]>right || A[left]<=left || A[A[left]-1]==A[left]){ A[left] = A[--right]; }else{ swap(A,left,A[left]-1); } } return left+1; } private void swap(int[] arr,int i1,int i2){ if(i1!=i2){ int tmp = arr[i1]; arr[i1] = arr[i2]; arr[i2] = tmp; } }

相关推荐

10-17 23:18
已编辑
西北农林科技大学 Web前端
独行m:给25可以试试,但他只能给12,那就是纯纯的事精
秋招,不懂就问
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务