社区
数据结构与算法
帖子详情
算法题一道,tecent题目,请教各位
xuxichun
2008-04-04 03:41:16
已知:A1 A2 A3 A4 ... An
B1 = A2*A3* ...*An
B2 = A1*A3* ...*An
Bn-1 = A1*...*An-2*An
Bn = A1*A2*...*An-1
求出各个Bi(i= 1,2 ...,n)
要求不能用除法(除法效率太低),时间负责度为nlog(n),
...全文
889
41
打赏
收藏
算法题一道,tecent题目,请教各位
已知:A1 A2 A3 A4 ... An B1 = A2*A3* ...*An B2 = A1*A3* ...*An Bn-1 = A1*...*An-2*An Bn = A1*A2*...*An-1 求出各个Bi(i= 1,2 ...,n) 要求不能用除法(除法效率太低),时间负责度为nlog(n),
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
41 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
中间件XL
2011-10-29
打赏
举报
回复
可以建模矩阵解决问题,
设a[n,n], 并令a[i,x]=Ai, i=1~n; a[i,i]=0,即矩阵对角线为0
则,得出如下矩阵
0 A1 A2 ... An
A1 0 A3 ...
...
A1 A2 ... 0
得,Bi为矩阵第i行的和,
设bi1=a[i,1]+...+a[i,i-1],
bi2=a[i,i+1]+...+a[i,n]
即以对角线为分界,每列的左右分别求和,
可得Bi=bi1+bi2,
又有下三角的关系:
b1=0
b(i+1)1=bi1+Ai,这个求和空间复杂度为n, 时间复杂度为nlogn
同样可求上三角bi2
最后根据Bi=bi1+bi2,求出Bi, 时间复杂度n
my1111ym
2011-10-22
打赏
举报
回复
mark~
oyzdz1988
2011-10-18
打赏
举报
回复
二楼的方法确实挺好,但不符合题目要求,题目是想考查二分查找的应用吧~
O(nlgn)的方法:
先要构造A[n]序列的二叉树,需要O(n)的存储空间,这个二叉树如下所示,以n=8为例子:
(A1*A2*A3*A4*A5*A6*A7*A8)
/ \
(A1*A2*A3*A4) (A5*A6*A7*A8)
/ \ / \
(A1*A2) (A3*A4) (A5*A6) (A7*A8)
/ \ / \ / \ / \
A1 A2 A3 A4 A5 A6 A7 A8
构造这个树需要O(nlgn)的时间,以后计算B[i]的修改去查这个树即可,以i为索引值,计算中只需要更新相应的一个分支即可,每次更新的复杂为O(lgn),即可得到最终的值。
大数学家拉格朗日
2011-10-18
打赏
举报
回复
恩,2楼那个就是对的那个,顶一下
大数学家拉格朗日
2011-10-18
打赏
举报
回复
补一句就是我那算法时间是线性
大数学家拉格朗日
2011-10-18
打赏
举报
回复
http://blog.csdn.net/chris820313/article/details/6851456
看我的博客,话说这不是搜狗的笔试题么!!
腾迅这他妈也抄啊!!!
fellatioyzx
2011-10-18
打赏
举报
回复
无视我吧,我没看到括号。。。
fellatioyzx
2011-10-18
打赏
举报
回复
为嘛不先把所有A都乘起来,在挨个除一下每个A_k呢,这样遍历两遍数组就够了
如果怕越界,可以先除后乘,即B_k = B_k-1 / A_k * A_k-1
ccc43542876
2011-10-17
打赏
举报
回复
我算了,貌似2楼的算不出题目要求的值吧。当i=1时 b1=A1*A2……AN了。。明显和题目要求不对呀。除法是肯定不可以用的,要是能用除法,Tencent的人就可以吃BB了。
qq1990118268
2011-10-10
打赏
举报
回复
如果是我的话想出的肯定是8楼的,2楼能想出这样的方法,高手。。但是我觉得8楼的方法好像速度还会快一些吧。
hzkjdxwktx
2011-10-10
打赏
举报
回复
貌似和快速傅里叶变换类似的思路啊
showjim
2011-10-09
打赏
举报
回复
O(n)的时候只需要一个栈,另一边可以实时计算
ywf550230785
2011-10-05
打赏
举报
回复
2楼是牺牲了空间换取的时间
shine19910530
2011-10-05
打赏
举报
回复
值得学习
UltraBejing
2008-04-30
打赏
举报
回复
都是很好的建议! 值得学习
meiZiNick
2008-04-30
打赏
举报
回复
我也想了解,谢谢LZ.
62guangye
2008-04-11
打赏
举报
回复
学习一下
chuengchuenghq
2008-04-11
打赏
举报
回复
kan kan
matchboy
2008-04-11
打赏
举报
回复
mark
tsasdf
2008-04-10
打赏
举报
回复
8楼说得对,2楼的方法不好。
目前还没见到一个办法是比较好的。
加载更多回复(21)
前端大厂最新面试
题
-
tecent
.docx
前端大厂最新面试
题
-
tecent
Round2_3_PC_
Tecent
2016
题
目
说明1
Round2_3_PC_
Tecent
2016
题
目
说明1
Round2_2_PC_
Tecent
2016
题
目
说明1
2016年游戏安全技术竞赛第二轮第2
题
——PC方向说明:编写一个【Tencent2016C.dll】,并导出多个接口函数:CheckVMWareX,CheckV
Tecent
培训资料
详细地腾讯培训资料包含公司最新资讯哦~~~~~~~~~~ 是很好的面试资料
TencentQQ.zip_QQ 协议_
tecent
QQ
java环境下的
TECENT
QQ协议,学习java必备知识。
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章