免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2867 | 回复: 14
打印 上一主题 下一主题

据说是google的笔试题目,大家讨论下 [复制链接]

104 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-06 19:19 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2006-12-06 19:50 |只看该作者
全部乘起来
接着就简单了

论坛徽章:
0
3 [报告]
发表于 2006-12-06 21:46 |只看该作者
建议楼主放上你的算法的复杂度,这样别人有个参照。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2006-12-06 21:57 |只看该作者
晕啊~
去掉绝对值最小的不就行了?
一遍扫描,取绝对值最小值,负数绝对值最小值,同时记下 0 的位置(如果有 0 的话),以及负数的个数,
如果负数是单数个,就要零,去掉绝对值最小的负数,否则就去掉 0。

论坛徽章:
0
5 [报告]
发表于 2006-12-06 22:23 |只看该作者
放上一个O(n)的解法,我们只要找出那个需要去除的元素就可以了:
遍历整个数组中的每个元素,遍历这个数组的过程中,需要6个辅助变量,
前两个为unsigned int型变量,分别记录数组中绝对值最小的正数和负数所对应的下表,记为minPosIndex,midNegIndex。
第三个为一个bool 变量,记为Odd,标志数组中负数个数的奇偶性,奇数为true,偶数为false。
第四个也是bool变量,记为hasZero,记录数组中是否有值为0的元素。


遍历完一遍后,做如下判断求出我们需要的最大值
if(hasZero)
{
     if(Odd)
          //则最大值为0
     else
          //则最大值为除元素0之外其他元素相乘的结果。
}
else
{
     if(Odd)
        // 则最大值是除a[midNegIndex] 之外其余N-1个元素相乘的结果
     else
        // 则最大值是除a[minPosIndex]之外其余N-1个元素相乘的结果
}

论坛徽章:
0
6 [报告]
发表于 2006-12-07 10:23 |只看该作者
原帖由 flw 于 2006-12-6 21:57 发表
晕啊~
去掉绝对值最小的不就行了?
一遍扫描,取绝对值最小值,负数绝对值最小值,同时记下 0 的位置(如果有 0 的话),以及负数的个数,
如果负数是单数个,就要零,去掉绝对值最小的负数,否则就去掉 0。


直觉上成立

论坛徽章:
0
7 [报告]
发表于 2006-12-07 10:48 |只看该作者
那命名看了眼花!

论坛徽章:
0
8 [报告]
发表于 2006-12-07 11:15 |只看该作者
原帖由 flw 于 2006-12-6 21:57 发表
晕啊~
去掉绝对值最小的不就行了?
一遍扫描,取绝对值最小值,负数绝对值最小值,同时记下 0 的位置(如果有 0 的话),以及负数的个数,
如果负数是单数个,就要零,去掉绝对值最小的负数,否则就去掉 0。

好像对~~

论坛徽章:
0
9 [报告]
发表于 2006-12-07 11:57 |只看该作者
原帖由 flw 于 2006-12-6 21:57 发表
晕啊~
去掉绝对值最小的不就行了?
一遍扫描,取绝对值最小值,负数绝对值最小值,同时记下 0 的位置(如果有 0 的话),以及负数的个数,
如果负数是单数个,就要零,去掉绝对值最小的负数,否则就去掉 0。



如果有>1 的“0”呢,好像就复杂了,还得判断0的个数

论坛徽章:
0
10 [报告]
发表于 2006-12-07 12:23 |只看该作者
原帖由 shxliang 于 2006-12-7 11:57 发表



如果有>1 的“0”呢,好像就复杂了,还得判断0的个数


如果有>1 的“0”,结果就为0了,这种情况还是包含在flw的算法中
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP