LeetCode 每日一题 三角形的最大高度
三角形的最大高度
给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行有 1 个球,第 2 行有 2 个球,第 3 行有 3 个球,依此类推。
每一行的球必须是 相同 颜色,且相邻行的颜色必须 不同。
返回可以实现的三角形的 最大 高度。
示例 1:
输入: red = 2, blue = 4
输出: 3
解释:
上图显示了唯一可能的排列方式。
示例 2:
输入: red = 2, blue = 1
输出: 2
解释:
上图显示了唯一可能的排列方式。
示例 3:
输入: red = 1, blue = 1
输出: 1
示例 4:
输入: red = 10, blue = 1
输出: 2
解释:
上图显示了唯一可能的排列方式。
题解
根据题意,红色球与蓝色球是交替排列的,也就是说,要么是红球放在奇数行,蓝球放在偶数行;要么是红球放在偶数行,蓝球放在奇数行
我们可以使用一个大小为2的数组 arr 记录奇数行与偶数行需要的球的个数,如果球的个数不够则说明此行不能填满,那么就得到了最大高度
代码如下↓
int maxHeightOfTriangle(int red, int blue) {
int arr[2];
arr[0]=0;
arr[1]=0;
int i=0;
while(arr[0]<=red && arr[1]<=blue || arr[0]<=blue && arr[1]<=red)
{
i++;
if(i%2==1)
{
arr[0]+=i;
}
else
{
arr[1]+=i;
}
}
return i-1;
}
原文地址:https://blog.csdn.net/2301_80293400/article/details/142962905
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!