日野弥生:勉強しよう
LeetCode 334 - 递增的三元子序列
发表于2025年04月11日
本题要深入理解到贪心理念:为了找到递增的三元子序列,first 和 second 应该尽可能地小,此时找到递增的三元子序列的可能性更大。
class Solution:
def increasingTriplet(self, nums: List[int]) -> bool:
# 提前剪枝特殊情况
if len(nums) < 3:
return False
# 此处用无穷大的方式来初始化second
first, second = nums[0], float('inf')
for i in range(1, len(nums)):
# 贪心的实现
if nums[i] <= first:
first = nums[i]
elif nums[i] <= second:
second = nums[i]
else:
# 此处返回的意义在于:一旦确定有这种三元组后直接返回,而无需在乎此时此刻的first和second是否被修改为新的更小的值
return True
return False