首页 > 其他 > 详细

面试题16.11.跳水板----leetcode

时间:2020-07-08 11:59:32      阅读:63      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 本题可以有多种解法:本文采用动态规划的方法来处理。

状态方程:

首先本题的状态方程可以写为:dp[i]=dp[i-1]+longer-shorter;

边界条件:

其次,本题的边界条件有两个:即当k=0时和shorter等于longer时。当k=0时,返回的结果为空,当shorter=longer时,返回结果为k*shorte或者k*longer。

具体程序如下。

 1 int* divingBoard(int shorter, int longer, int k, int* returnSize){
 2     int* dp=(int *)calloc((k+2),sizeof(int));
 3     *returnSize=0;
 4     int i;
 5     dp[0]=k*shorter;
 6     if(k==0)
 7     {
 8          return dp;
 9     }
10     else if(shorter==longer)
11     {
12         *returnSize+=1;               //记录数组的长度。
13         return dp;
14     }
15     else{
16         for(i=1;i<=k+1;i++)
17         {
18            dp[i]=dp[i-1]+longer-shorter;
19            *returnSize+=1;
20         } 
21     }
22     return dp;
23 }

 

面试题16.11.跳水板----leetcode

原文:https://www.cnblogs.com/sbb-first-blog/p/13266038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!