经典的面试题,将数组里面的字符进行倒置。
契合数据结构的栈的结构,先push进去,再pop出来,就是得到一个倒序数组。这样的话,长度为n的字符串,应该是消耗2n。
但是那样的效率或许有点不高,划算的算法应该是利用数学,以中间的数字作为基准,两边的字符进行交互。效率或许会提高倍。至少这样的时间消耗率是n/2.
跟之前小学就遇到过一个数学题一样,1+2+3.....+n
单纯的f(n)=f(n-1)+n 知道n=1的时候,f(1)=1;进行依次循环调用,最后时间消耗是n;
如果利用最简单的数学表达式:f(n) = (n+1)*n/2; 这样的时间消耗是3。
所以数据结构跟算法分析是得有合理的运用。深入理解,才能将其威力发挥到极致。
原文链接:https://www.f2er.com/javaschema/284200.html