leetcode题解--跳水板拼凑

跳水板拼凑

题目:有两块板子,长度为x和y,假设有k块,输出所有可能的拼凑长度,例如x=1,y=2,k=3,输出[3,4,5,6]

本题可看成首项为kx,末项为ky,公差为y-x的等差数列,每用长的替换短的,都是加一次公差,项数为k+1.

代码如下:

Public int [] result(int shorter,int longer,int k){
    if(k==0){
        return new int[0];
    }
    if(shorter==longer){
        return new int[]{shorter*k};
    }
    int[] ans=new int[k+1];
    int sx = k*shorter;
    int delta = longer-shorter;
    for(int i =0;i<=k;i++){
        ans[i]=sx+i*delta;
    }
    return ans;
}

本博客所有文章除特别声明外,大部分为学习心得,欢迎与博主联系讨论