码迷,mamicode.com
首页 > 其他好文 > 详细

寒假 3

时间:2018-02-01 23:12:54      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:water   rap   过程   空间复杂度   应该   代码   技巧   问题   适用于   

1.  数组作为函数参数:

  • 形参是指针和数组长度,或首尾指针。
  • 实际参数是数组,形参应该是指针

 

 

 

2.  trapping rain water算法改进:

  1. 计算每个bar的存水量(对每个bar,扫描左右bar的高度,得到左右最高,计算存水量),时间n2,空间1
  2. 改进:计算每个bar的存水量(分别从左右扫描数组,用两个数组记录每个位置的左最高和右最高,结合后得到每个bar的左右最高),时间n,空间n
    • 一种技巧,适用于某元素的所求量需要左右元素确定的问题。整体扫描可以把时间复杂度化为n。
  1. 改进:计算每个bar的存水量,还是需要两两边的高度。两遍夹逼,空间复杂度从2n降到n。

 

 

评估算法的复杂度,尝试不同的算法。

 

 

3.  双指针

c语言的函数调用:本质是代码块之间的双向数据传递和执行控制转移。数据传递通过参数和返回值进行,由于函数参数和局部变量都通过栈来操作,(而不是全局区)所以传递的是原数据的值的副本,无法改变原值。(全局区内的变量就可以改变)  

如果想要改变,需要传递数据的地址,通过取值改变取值过程实现。不管这个数据是什么类型。例:如果要改变一个指针,就要传递双指针。

 

寒假 3

标签:water   rap   过程   空间复杂度   应该   代码   技巧   问题   适用于   

原文地址:https://www.cnblogs.com/guguclaire/p/8401502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!