一、时间昂贵、空间廉价
不管是在面试中手撕代码,还是在实际应用中去优化代码效率。其核心就是要:尽量降低时间复杂度和空间复杂度。
一段代码会消耗计算时间、资源空间,从而产生时间复杂度和空间复杂度。代码效率的瓶颈一般也发生在时间或者空间这两个方面。如果是缺少计算空间,花钱买服务器就可以了。但是如果是计算时间太长,只能投入宝贵的人生去跑无限的程序了!
相比于空间复杂度,时间复杂度的降低就显得更加重要了。因此,你会发现这样的结论:空间是廉价的,而时间是昂贵的。
既然时间是昂贵的,空间是廉价的。那么自然想到一个问题:能不能通过损失一点空间,换得时间上的缩短呢?
其实这是可以的。举我们 城市交通 的例子:在市中心的十字路上,通行的车辆很多,常常需要设置交通灯维持秩序。这就会使得司机花费一些时间去等待,因此时间成本就会大大增加。但是当我们建立了交桥后,车辆就可以选择分流行驶,这会大大减小等待交通灯的时间,实现了以空间换取司机们宝贵的时间。
总结上面的例子,可以得到结论:可以用廉价的空间换取宝贵的时间。那么在代码中,