| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:微软面试题,算法。
只看楼主 加入收藏
zhaifuqiang
Rank: 1
等 级:新手上路
帖 子: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
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分: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
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-12-14
收藏
得分: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
快速回复:微软面试题,算法。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019549 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved