多くの値の非常に大きな配列があり、row-major 1d array
.
ex:
1 2 3
4 5 6
に格納されますint* array = {1,2,3,4,5,6};
私がしなければならないことは、 が与えられrow1, row2, column1, column2
、次に面積の合計を出力することです。これにより、さまざまな面積を何度も計算するように要求されます。
私が考えているのは、最初にネストされたループを使用して配列をトラバースし、各行の合計を格納しsum_row
、各列の合計sum_column
を格納し、合計要素の合計 im を格納することtotalSum
です。
それからtotalSum - the row and the columns that surrond it + the elemnts that has been minus twice
。
しかし、それは十分に速いようです。より高速に実行できるアルゴリズムや、係数を小さくできるコーディングスタイルのヒントはありますか?
事前にThx。