5个数字相加为指定数
在一个递增的整数数列中,怎么以最快的速度找到5个数,使其和为指定数设数列个数为 N ,指定数为 M。 设N个数为Num
用M除以N,得到 商为A,余数B
for i=1to N/2
Num=A+i
Num=A-i
next
然后把最大的数加上B
就可以了 没明白什么意思
怎么得到的是哪5个数呢 2楼的
你那好像不是这个题目吧 你是说从N个递增数中取5个值相加等于M吗?
递增没有规律的话,没什么快捷的方法吧,只能一个个组合试了
如果有规律的话就是先求M除以5的平均值,然后以平均值为中心一边递增,一边递减.然后在最大的值上加上M除以5的余数 增量没规律的话就只能一个个组合取么
那在取组合的时候有没有什么好的技巧 尽量少计算些呢 原来用5个指针写过一段代码
时间复杂度在o(n)里
不过漏解
页:
[1]