文章结束给大家来个程序员笑话:[M]
标题:
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0]
return 3
,
and [3,4,-1,1]
return 2
.
Your algorithm should run in O(n) time and uses constant space.
分析:此题可以用一个hash数组实现,所需分配间空的小大最大为n(比如当数组为
[1,2,3]时,回返的值为4
)。
代码如下:
int firstMissingPositive(int A[], int n) {
int value =1;
if(n<=0)return value;
int *B=new int[n+1];
for(int i=0;i<=n;i++)
{
B[i]=0;
}
for(int i=0;i<=n;i++)
{
if(A[i]<=n&&A[i]>=0)
B[A[i]]=1;
}
value=n+1;
for(int i=1;i<=n;i++)
{
if(B[i]==0)
{
value = i;
break;
}
}
delete []B;
return value;
}
文章结束给大家分享下程序员的一些笑话语录:
人工智能今天的发展水平:8乘8的国际象棋盘其实是一个体现思维与创意的强大媒介。象棋里蕴含了天文数字般的变化。卡斯帕罗夫指出,国际象棋的合法棋步共有1040。在棋局里每算度八步棋,里面蕴含的变化就已经超过银河系里的繁星总数。而地球上很少有任何数量达到这个级别。在金融危机之前,全世界的财富总和大约是1014人民币,而地球人口只有1010。棋盘上,所有可能的棋局总数达到10120,这超过了宇宙里所有原子的总数!经典语录网