本文主要是介绍网上看到一道搜狗笔试题,今天下午实现了一下,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个长度为n的数组a[0],a[1],...,a[n-1]。现在更新数组的名个元素,即a[0]变为a[1]到a[n-1]的积a[1]变为a[0]和a[2]到a[n-1]的积,...,a[n-1]为a[0]到a[n-2]的积。
程序要求:
要求具有线性复杂度。
不能使用除法运算符。
思路是思想跟这个一样,用两个数组b,c
b[i] = a[0] *... * a[i - 1]
c[i] = a[i + 1] *...*a[n]时间复杂度为O(2n)
最后a[i] = b[i]*c[i],我在这里没用c数组
少用c【i】数组的话,程序写起来就不是太好理解,其实是一个道理
这篇关于网上看到一道搜狗笔试题,今天下午实现了一下的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!