假设你有一个数组,并且你想遍历它,将每个等于某个值的元素改为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