假設你有一個數組,並且你想遍歷它,將每個等於某個值的元素改爲1,其他的元素改爲0.你還需要知道結果中1和0的數目陣列,在另一個時間點。重新迭代數組或攜帶一個額外的變量?
這樣做的最好方法是什麼?
當您第一次遍歷數組時計算1的數量,並將該數字保存在變量中,直到您真正需要它爲止?或者,當你需要1的數量時,再做sum(array_with_0s_and_1s)。
是一種比另一種更有效的方法嗎?在我看來,做和會再次迭代數組,並且速度會減慢一倍,而計算第一次的數量時,第一次只會看起來不那麼優雅,並且您必須攜帶一個額外的變量。
兩者都是相等的:假設一個數組有n個項目,當相等性檢查和更改操作的成本因子爲x,成本因子爲y的加法操作時,與操作方式無關n·(x + y)= n·x + n·y。 – Gumbo 2012-02-08 09:23:45