前言
每天和你一起刷 LeetCode 每日一题~
LeetCode 启动!
题目:三角形的最大高度
代码与解题思路
久违的简单题
这道题读完题目其实不难想到有两条路可以走:
1、题目很明显只有两种情况,枚举是第一个球是红球还是蓝球这两种情况,取一个最大值即可
2、找出数学规律,通过数学公式解题
作为数学困难户,那我必须是枚举起手
func maxHeightOfTriangle(red int, blue int) int {
// 枚举第一个值是 red 还是 blue
return max(check(red, blue), check(blue, red))
}
func check(r, b int) int {
for i := 1; ; i++ {
if i & 1 == 1 { // 第一个球(奇数行)
r -= i
if r < 0 {
return i - 1
}
} else { // 第二个球(偶数行)
b -= i
if b < 0 {
return i - 1
}
}
}
}
核心逻辑:把代码分成奇数行和偶数行分开判断,模拟题意取得最大值即可~
每天进步一点点,我们明天不见不散~
可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。