巧解腾讯面试题

my张小秋 2012-01-02 05:55:14
原帖地址:http://topic.csdn.net/u/20111228/16/73a64b36-eddf-4013-803a-666157808071_2.html?seed=1996175816&r=77166777#r_77166777

面试题:
有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里

请找出丢失的数字,最好能有程序,最好算法比较快
假设n=10000

大家提供解法:很多,基本上是用搜索,查找,递归,bitmap,数学等方法解决

我的解法:
已知,1到n中缺少了三个数,n-3个数已打乱,求缺少的数:
假设这n-3个数存在一个b[n-3]数组中
int a[n]={1};
for(int i = 0; i < n-3; i++)
{
a[b[i]] = 0;
}

for(int i = 0; i < n; i++)
{
if(a[i] == 1)
{
//为什么其他的数字都被改变了,这个数值巍然不动?因为它不在b数组中,谢谢
}
}
...全文
143 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞羽惊鸿 2012-01-05
  • 打赏
  • 举报
回复
恩,不错的思路啊

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧