问题描述
我正在尝试寻找一种方法来遍历大小为N的整数数组,并将每个整数乘以128 ^((N-1)-i),其中N是数组的长度,而i是是整数的索引,然后将所有结果加在一起。
例如,[1、2、3、4]的数组输入将返回1 *(128 ^ 3)+ 2 *(128 ^ 2)+ 3 *(128 ^ 1)+ 4 *(128 ^ 0)。
我的算法需要在O(N)时间内运行,但是指数运算非常昂贵,例如2 ^ 3需要进行三个运算。因此,我需要找到一种仅使用算术运算(-,+,*,/,%)在O(1)时间内对数组中的每个整数进行运算的方法。我能想到的最明显(错误)的方法就是简单地将每个整数(N-i)相乘,但这并不需要花费固定的时间。我还考虑过通过平方来使用幂运算,但是对每个整数进行运算都需要log_2(N-i)时间,这不是常数。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)