斐波那契数 	public  int  fib ( int  n)  { if  ( n ==  0 )  { return  0 ; } if  ( n ==  1 )  { return  1 ; } return  fib ( n -  1 )  +  fib ( n -  2 ) ; } public  int  fib2 ( int  n)  { if  ( n <=  1 )  return  n; int [ ]  dp =  new  int [ n +  1 ] ; dp[ 0 ]  =  0 ; dp[ 1 ]  =  1 ; for  ( int  i =  2 ;  i <  n +  1 ;  i++ )  { dp[ i]  =  dp[ i -  1 ]  +  dp[ i -  2 ] ; } return  dp[ n +  1 ] ; } 
爬楼梯 除了边界值设定,与上一道题基本一样,代码省略
使用最小花费爬楼梯 	public  int  minCostClimbingStairs ( int [ ]  cost)  { int [ ]  dp =  new  int [ cost. length +  1 ] ; dp[ 0 ]  =  0 ; dp[ 1 ]  =  0 ; for  ( int  i =  2 ;  i <  cost. length +  1 ;  i++ )  { dp[ i]  =  Math . min ( dp[ i -  1 ]  +  cost[ i -  1 ] ,  dp[ i -  2 ]  +  cost[ i -  2 ] ) ; } return  dp[ cost. length] ; } public  int  minCostClimbingStairs ( int [ ]  cost)  { int  a =  0 ; int  b =  0 ; for  ( int  i =  2 ;  i <  cost. length +  1 ;  i++ )  { int  sum =  Math . min ( b +  cost[ i -  1 ] ,  a +  cost[ i -  2 ] ) ; a =  b; b =  sum; } return  b; } 
第一天动态规划,比较简单,给我自信 现在的股票越来越看不懂,各路大佬看得也不一样,一天看中好几个,有的涨了有的跌了,有点难玩