面试题 16.11. 跳水板

题目来源:

        leetcode题目,网址:面试题 16.11. 跳水板 - 力扣(LeetCode)

解题思路:

       使用哈希表记录所有可能结果,然后再将哈希表中的数据放入数组中,最后对数组进行排序即可。

解题代码:

class Solution {
    public int[] divingBoard(int shorter, int longer, int k) {
        if(k==0){
            return new int[]{};
        }
        Set 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        木板

        


你可能感兴趣的:(#,java,leetcode,java)