(ブラシノート)leetcode面接問題16.11.ダイビングボード
目次題 解題構想 コード(C+) タイトル
板の山を使ってダイビングボードを作っています.長さの短い板の長さはshorter、長さの長い板の長さはlongerの2種類の板があります.ちょうどk枚の板を使わなければなりません.ダイビングボードのすべての可能な長さを生成する方法を作成します.
返される長さは、小さいものから大きいものまで並べ替える必要があります.
例:
ヒント:
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/diving-board-lcci
問題を解く構想.
カードを打つ問題は、問題が簡単で、1回循環すればいいので、境界状況を完全に考慮できるかどうかを考察することができます.ここでの境界はk=0とshorterがlongerと等しい場合である.
私はqq群を建てて、興味があるのは575474684をプラスすることができて、みんなは互いに督促して一緒に問題をブラシすることができます.
コード(C+)
板の山を使ってダイビングボードを作っています.長さの短い板の長さはshorter、長さの長い板の長さはlongerの2種類の板があります.ちょうどk枚の板を使わなければなりません.ダイビングボードのすべての可能な長さを生成する方法を作成します.
返される長さは、小さいものから大きいものまで並べ替える必要があります.
例:
:
shorter = 1
longer = 2
k = 3
: {3,4,5,6}
ヒント:
0 < shorter <= longer
0 <= k <= 100000
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/diving-board-lcci
問題を解く構想.
カードを打つ問題は、問題が簡単で、1回循環すればいいので、境界状況を完全に考慮できるかどうかを考察することができます.ここでの境界はk=0とshorterがlongerと等しい場合である.
私はqq群を建てて、興味があるのは575474684をプラスすることができて、みんなは互いに督促して一緒に問題をブラシすることができます.
コード(C+)
class Solution {
public:
vector<int> divingBoard(int shorter, int longer, int k) {
if(k==0) return {
};
if(shorter==longer) return {
shorter*k};
vector<int> res;
int s=k;
int l=0;
while(l<=k){
int sum=shorter*s+longer*l;
res.push_back(sum);
--s;
++l;
}
return res;
}
};