c++算法题-时间/空间复杂度

力扣题目-最长公共前缀: 关于时间复杂度和空间复杂度方面的思考

题目如下:

 见如下两个题解的区别:

①时间0ms, 内存9MB

②时间4ms, 内存8.9MB

 

在解释前, 先放出上述题解中的vector.size()函数的底层代码, 该函数简单来说, 就是在得到自身容器对象后, 用尾指针的坐标减去头指针的坐标得到容器的长度

解释如下:

在②题解中, 直接在for循环中使用size()函数作为循环结束的临界值, 导致在循环过程中不断调用此函数计算长度, 使程序运行时间大大加长.

所以①题解中, 直接把size()计算结果放入一个新创建的内存(int 4个字节)中, 这样在for循环中就少去了多次计算, 虽然比②题解多了数个字节的内存消耗, 但是运行时间从4ms变成0ms, 这是必要的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值