Redian新闻
>
find the first missing positive number
avatar
find the first missing positive number# JobHunting - 待字闺中
g*j
1
这个问题的基本思路就是交换,然后把合适的数放在合适的位置
比如 -1,3,1,4
交换之后便成 1,-1,3,4
代码如下
但是我有一个地方想不明白
A[i] != A[A[i] - 1]
这个是什么意思?
为什么不是 A[i] != i+1?
=======================================
int firstMissingPositive(int A[], int n) {
// Note: The Solution object is instantiated only once and is reused
by each test case.
if(n == 0) return 1;

for(int i = 0; i < n; i++){
while (A[i] >=1 && A[i] <=n && A[i] != A[A[i] - 1]) {
swap(&A[i], &A[A[i]-1]);
}
}

for(int i = 0; i < n; i++) {
if(A[i] - 1 != i)
return i+1;
}

return n+1;
}
avatar
J*3
2
Bucket sort 变体哇 对应正确的桶位置
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。