A
の整数はN
で、もう1つの整数はM
です。任意の所与の指数i
0 <= i < N
ため、A
のith
インデックスを隠し、モジュロ例えばM.整数の配列(サイズNの)とMの場合、配列のN-1要素の積をM剰余として求めます。M
の他のすべての要素の積を返し、次いでi=1
ため、結果は(1x3x4x5) mod 100
になりA = {1, 2, 3, 4, 5}
とM=100
を言います。したがって、結果は60です。
すべての整数は32ビットの符号なし整数であるとします。
これを行うための明らかなアプローチは、任意の与えられた値i
の結果を計算することです。それはi
の与えられたすべての値に対してN-1
の乗算を意味します。これを行うより最適な方法はありますか?
P.S. 最初の考えは、すべての数字の積をA
に保存することです(これはtotal
としましょう)。 i
のすべての値に対して、total
をA[i]
で除算し、モジュロを取った後の結果を返します。ただし、total
はオーバーフローの原因になるため、これは実行できません。
私たちが聞くことができるのはなぜですか? –
私の答えを調べてみてください。 – coderredoc
@TimBIegeleisen:私は基本的なアプローチを使ったコーディングのインタビューでこれを尋ねられましたが、多くのテストケースがタイムアウトしました。だから私はまだこれを行うための最適なアプローチが何かと思っています。 –