1. 程式人生 > 實用技巧 >【力扣】跳水板

【力扣】跳水板

你正在使用一堆木板建造跳水板。有兩種型別的木板,其中長度較短的木板長度為shorter,長度較長的木板長度為longer。你必須正好使用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

public int[] divingBoard(int shorter, int
longer, int k) { if (k == 0){ return new int[]{}; } if (shorter == longer) { return new int[]{shorter * k}; } //注意,不需要判重,因為根本不可能有重複的結果!!!! //這裡要想明白為啥是k+1 的長度 //舉例: // shorter * k , shorter * (k -1) + longer * 1 ... ... shorter * 1 + longer * (k-1) + longer * k
// 單看shorter一共有 k次 出現在這個式子裡,最後一次沒有 // 又因為前提已經確認 shorter < longer 所以一共是k+1 次 int [] resultInfo = new int[k+1]; for (int i = 0 ; i < k+1; i++){ resultInfo[i] = (shorter * (k-i) + longer * i); } return resultInfo; }