沧州市网站制作公司,伊克昭盟seo,自己的商标名称可以做网站名称吗,西安seo技术题目#xff1a;
你正在使用一堆木板建造跳水板。有两种类型的木板#xff0c;其中长度较短的木板长度为shorter#xff0c;长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法#xff0c;生成跳水板所有可能的长度。
返回的长度需要从小到大排列。 示例
你正在使用一堆木板建造跳水板。有两种类型的木板其中长度较短的木板长度为shorter长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法生成跳水板所有可能的长度。
返回的长度需要从小到大排列。 示例 输入 shorter 1 longer 2 k 3 输出 [3,4,5,6] 解释 可以使用 3 次 shorter得到结果 3使用 2 次 shorter 和 1 次 longer得到结果 4 。以此类推得到最终结果。 解题思路
1.首先考虑两种特殊情况 k0使用0块木板直接返回一个空数组即可 shorterlonger两个板长度相同返回任意一个板的长度*k
2.其余正常情况我们可以看的出会有k1种情况使用0块短板--使用k块短板所以我们这里设置循环初始值为0循环结束条件是k
3.题目要求返回的长度需要从小到大排序所以我们在最后还需要用到sort函数将结果数组进行排序 Code
class Solution {
public://计算总长度int total(int shorter, int longer, int k,int n,int m){int sumshorter*nlonger*m;return sum;}vectorint divingBoard(int shorter, int longer, int k) {vectorint res;//如果k为0返回空数组if(k0) return res;//如果短板和长板长度相同返回任意一个板*kif(shorterlonger){res.push_back(k*shorter);return res;}//其他正常情况for(int i0;ik;i){//将每一次结果添加到res中res.push_back(total(shorter,longer,k,i,k-i));}//按升序顺序排序sort(res.begin(),res.end());//返回结果数组return res;}
};