我正在阅读Cracking the Coding Interview,第6版。我在书中偶然发现了同样的问题2次,但有两种不同的给定解决方案。这令人费解。
我指的是计算在扩展数组中插入X元素的摊销时间。第一次在第43页。解决方案说X插入需要O(2X)次。第89页第二次说它需要O(X)次。
不同之处在于,在第一次出现时,作者正在考虑以下插入序列:
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:file:./database.h2;FILE_LOCK=FS
spring.jpa.hibernate.ddl-auto=update
正确总计2倍。
第二次只是
X + X/2 + X/4 + X/8… + 1
总结为X。
为什么她在第一种情况下而不在第二种情况下考虑X?