返回   cpper编程论坛 > 算法
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2006-06-02
初级会员
 
注册日期: 2004-12-21
帖子: 5
archerzz 正向着好的方向发展
默认 面试题:a+b=c

有一系列数字,求符合a+b=c的最大的c。
据说是google的面试题,写出n^2的都有机会面试。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2006-06-02
Elminster 的头像
超级版主
 
注册日期: 2002-09-09
帖子: 1,763
Elminster 正向着好的方向发展
默认

引用:
作者: archerzz
有一系列数字,求符合a+b=c的最大的c。
据说是google的面试题,写出n^2的都有机会面试。
这题在职场人生版已经有人讨论过了,见:
http://www.cpper.com/c/showthread-t_446.html
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #3 (permalink)  
旧 2006-06-02
polyrandom 的头像
超级版主
 
注册日期: 2002-09-03
帖子: 3,135
文章: 20
polyrandom 正向着好的方向发展
默认

O(n^2)还是不难的,但是有没有可能进一步的说?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #4 (permalink)  
旧 2006-06-08
Elminster 的头像
超级版主
 
注册日期: 2002-09-09
帖子: 1,763
Elminster 正向着好的方向发展
默认

引用:
作者: polyrandom
O(n^2)还是不难的,但是有没有可能进一步的说?
可能性不大。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #5 (permalink)  
旧 2008-07-06
初级会员
 
注册日期: 2008-07-06
帖子: 2
programmer 正向着好的方向发展
默认 回复: 面试题:a+b=c

我是小菜,大虾的些多指点. 发个我写的, 好久没接触C了,现在重新开始学.都怪上学的时候只顾玩,到头来什么都没学会. 不记得排序的函数了, 所以省了排序这一步.
说下算法思想:
1: 按由小到大排序数组
2: 从右住左搜索, a+b = c 哪么应该满足 a<= c/2并且b>=c/2
#include <stdio.h>

int main(void)
{
int data[] = {1,2,3,4 ,5, 6,7 ,8, 1, 20};
int l , r, p=9, m ;

for (p = 9; p > 2; p--)
{
m = data[p] / 2;
l = 0;
r = p -1;
while (data[l] <= m && data[r] >=m && l != r)
{
if (data[l] + data[r] == data[p])
{
printf("%d", data[p]);
return 0;
}
l++; r--;
}
}
printf("not found");
}

此帖于 2008-07-06 12:30 AM 被 programmer 编辑.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #6 (permalink)  
旧 2008-07-06
初级会员
 
注册日期: 2008-07-06
帖子: 2
programmer 正向着好的方向发展
默认 回复: 面试题:a+b=c

汗,看来不是一般的菜. 发现上面的代码有严重问题, 把 r-- 去了
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #7 (permalink)  
旧 2008-08-06
GENESIS 的头像
初级会员
 
注册日期: 2008-08-06
帖子: 9
GENESIS 正向着好的方向发展
默认 回复: 面试题:a+b=c

调通了吗
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9。现在的时间是 09:20 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0