C***U 发帖数: 2406 | 1 找第一个丢失的正整数
int firstMissingPositive(int A[], int n) {
for(int i = 0; i < n; i++) {
int temp = 0;
while(A[i] != i) {
if(A[i] < 0)
break;
temp = A[i];
if(temp >= n)
break;
A[i] = A[A[i]];
A[temp] = temp;
}
}
for(int i = 1; i < n; i++)
if(A[i] != i)
return i;
return n;
} |
h*****3 发帖数: 1391 | 2 A[i] = A[A[i]];
这句有可能死循环。如果A[i] == A[A[i]] |
C***U 发帖数: 2406 | 3 恩 谢谢 知道了
【在 h*****3 的大作中提到】 : A[i] = A[A[i]]; : 这句有可能死循环。如果A[i] == A[A[i]]
|
n****r 发帖数: 120 | |
n****r 发帖数: 120 | 5 leetcode 过不去,你应该可以看到哪些case fail了,一般来说是自己的程序没有
cover哪些case,在自己机器上跑跑哪些case,改过了再继续tryleetcode |