334. Increasing Triplet Subsequence

harry xie
2024-09-30 07:31:57

解題程式碼

var increasingTriplet = function (nums) {
  let min = nums[0];
  let mid = Infinity;

  for (let i = 1; i < nums.length; i++) {
    if (min > nums[i]) {
      min = nums[i];
    } else if (mid > nums[i] && nums[i] > min) {
      mid = nums[i];
    } else if (nums[i] > min && nums[i] > mid) {
      return true;
    }
  }
  return false;
};

解題思路演算法

用 花花酱 LeetCode 334. Increasing Triplet Subsequence 提供的圖片來看會比較清楚

遍歷陣列一次，然後用兩個變數儲存找到的最小值和次小值，當找到比它們大的數的時候，就代表能找到 triple of indices

解法的時間空間複雜度

時間複雜度: O(n)
空間複雜度: O(1)

參考資料