码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA面试题 跳水板

时间:2020-07-08 15:37:16      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:==   总数   ret   boa   oar   public   class   new   特殊   

你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。

返回的长度需要从小到大排列。

示例:

输入:
shorter = 1
longer = 2
k = 3
输出: {3,4,5,6}
提示:

0 < shorter <= longer
0 <= k <= 100000

思路:首先可以考虑特殊情况,长模板和短木板长度相同的情况下,必然只有一种可能性。长短木板长度不相同的情况下我们可以发现最后输出结果的个数会是木板总数+1

class Solution {
    public int[] divingBoard(int shorter, int longer, int k) {
        if(k == 0) return new int[] {};
		int intLength = k + 1;
		if(shorter == longer) intLength = 1;
		int[] board = new int[intLength];
		if(shorter == longer) {
			board[0] = shorter * k;
		}else {
			for(int i = 0; i <= k; i++) {
				int boardLong = i * longer + (k - i) * shorter;
				board[i] = boardLong;
			}
		}
		return board;
    }
}

  

JAVA面试题 跳水板

标签:==   总数   ret   boa   oar   public   class   new   特殊   

原文地址:https://www.cnblogs.com/diehuacanmeng/p/13266608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!