题目来源:
leetcode题目,网址:面试题 16.11. 跳水板 - 力扣(LeetCode)
解题思路:
使用哈希表记录所有可能结果,然后再将哈希表中的数据放入数组中,最后对数组进行排序即可。
解题代码:
class Solution {public int[] divingBoard(int shorter, int longer, int k) {if(k==0){return new int[]{};}Set<Integer> set=new HashSet<>();for(int i=0;i<=k;i++){set.add(shorter*i+longer*(k-i));}int[] res=new int[set.size()];int i=0;for(int num:set){res[i]=num;i++;}Arrays.sort(res);return res;}
}
总结:
官方题解基于数学解题,将 shorter 和 longer 相等这一情况单独列出,这样在后续计算过程中就不会有两次计算结果相同的情况,直接使用数组即可。
bunch 堆
plank 木板