Redian新闻
>
Leetcode: First Missing Positive
avatar
Leetcode: First Missing Positive# JobHunting - 待字闺中
p*2
1
我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
大家来说说最好的算法是什么?
avatar
v*d
2
leetcode 上面的算法就已经很好了吧?
已经是O(n)了,难道有比O(N)更好的?

【在 p*****2 的大作中提到】
: 我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
: 大家来说说最好的算法是什么?

avatar
l*8
3
O(n)的算法好几个, 什么算最好?
我喜欢用这个swap的算法
int firstMissingPositive(int A[], int n)
{
for (int i=0; iwhile (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
swap(A[i], A[A[i]-1]);
for (int i=0; iif (A[i] != i+1)
return i+1;
return n+1;
}
avatar
a*o
4
找出最大数,开个bit vector?

【在 p*****2 的大作中提到】
: 我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
: 大家来说说最好的算法是什么?

avatar
r*e
5
不用找最大数吧,用数组个数就成了。

【在 a***o 的大作中提到】
: 找出最大数,开个bit vector?
avatar
p*2
6

这个不错呀longway2008。膜拜一下。

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
f*m
7
哪位大侠能告知思路吗?

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
f*m
8
是不是和in-place sort有些关系?
avatar
f*m
9
是不是和in-place sort有些关系?
avatar
h*7
10
leetcode 上面的算法在哪里?我怎么没有找到呀。 [挠头]
请指点。多谢!

【在 v********d 的大作中提到】
: leetcode 上面的算法就已经很好了吧?
: 已经是O(n)了,难道有比O(N)更好的?

avatar
h*7
11
请问,这里的n是怎么决定的?

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
p*2
12
我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
大家来说说最好的算法是什么?
avatar
v*d
13
leetcode 上面的算法就已经很好了吧?
已经是O(n)了,难道有比O(N)更好的?

【在 p*****2 的大作中提到】
: 我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
: 大家来说说最好的算法是什么?

avatar
l*8
14
O(n)的算法好几个, 什么算最好?
我喜欢用这个swap的算法
int firstMissingPositive(int A[], int n)
{
for (int i=0; iwhile (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
swap(A[i], A[A[i]-1]);
for (int i=0; iif (A[i] != i+1)
return i+1;
return n+1;
}
avatar
a*o
15
找出最大数,开个bit vector?

【在 p*****2 的大作中提到】
: 我有个把数置负数的算法。但是记得有一个更好的算法。但是当时没注意收集情报。
: 大家来说说最好的算法是什么?

avatar
r*e
16
不用找最大数吧,用数组个数就成了。

【在 a***o 的大作中提到】
: 找出最大数,开个bit vector?
avatar
p*2
17

这个不错呀longway2008。膜拜一下。

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
f*m
18
哪位大侠能告知思路吗?

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
f*m
19
是不是和in-place sort有些关系?
avatar
f*m
20
是不是和in-place sort有些关系?
avatar
h*7
21
leetcode 上面的算法在哪里?我怎么没有找到呀。 [挠头]
请指点。多谢!

【在 v********d 的大作中提到】
: leetcode 上面的算法就已经很好了吧?
: 已经是O(n)了,难道有比O(N)更好的?

avatar
h*7
22
请问,这里的n是怎么决定的?

【在 l*********8 的大作中提到】
: O(n)的算法好几个, 什么算最好?
: 我喜欢用这个swap的算法
: int firstMissingPositive(int A[], int n)
: {
: for (int i=0; i: while (1<=A[i] && A[i] <=n && A[A[i]-1]!=A[i])
: swap(A[i], A[A[i]-1]);
: for (int i=0; i: if (A[i] != i+1)
: return i+1;

avatar
j*s
23
基本思路是对于A[],[1..A.length+1],first missing 在这个区间里面,第一遍遍历数
组把A[i]换到A[i]-1的位置上,第二遍返回第一个A[i] != i+1的数
avatar
j*s
24
基本思路是对于A[],[1..A.length+1],first missing 在这个区间里面,第一遍遍历数
组把A[i]换到A[i]-1的位置上,第二遍返回第一个A[i] != i+1的数
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。