搜索
编程论坛
→
开发语言
→
C++论坛
→
『 VC++/MFC 』
→ 微软面试题,算法。
标题:
微软面试题,算法。
只看楼主
zhaifuqiang
等 级:
新手上路
帖 子:2
专家分:0
注 册:2008-12-15
楼主
问题点数:0 回复次数:2
微软面试题,算法。
一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。
复杂度最好是O(n),如果是O(n2)则不得分。
目标:追求O(n)复杂度的算法!
c/c++开发群:73204313 ... 欢迎加入
搜索更多相关主题的帖子:
微软
算法
面试
2008-12-15 14:06
debroa723
等 级:
贵宾
威 望:
23
帖 子:862
专家分:1954
注 册:2008-10-12
第
2
楼
得分:0
int GetResult( int* data/*数列*/ , int iSize /*数组大小*/ , const int N /*数的范围,1-N*/)
{
assert( iSize <= N );
int m_iData[N+1] = {0} ;
int iNum = 0 ;
for ( int i = 0 ; i < iSize ; ++i )
{
assert( data[i] <= N && data[i] > 0 ) ;
m_iData[data[i]] = data[i] ;
if ( m_iData[N - data[i]+1] != 0 )
{
++iNum ;
}
}
return iNum ;
}
2008-12-15 22:10
yulonh
等 级:
新手上路
帖 子:27
专家分:0
注 册:2008-12-14
第
3
楼
得分:0
请问0(n)复杂度是什么意思?我这个算不算
#include"stdafx.h"
#include"stdio.h"
void main()
{int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
if(j+i==N+1&&i!=j)
printf("%d %d\n",i,j);
}
粗体文字 Abc
我
字体为仿宋
总喜欢在人群中寻找自己……
2008-12-15 23:06
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-249422-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015047 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved