日野弥生:勉強しよう

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

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/increasing-triplet-subsequence/

上一篇

LeetCode 238 - 除自身以外数组的乘积

下一篇

LeetCode 345 - 反转字符串中的元音字母