ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

leetcode 3637. 三段式数组 I 简单

leetcode 3637. 三段式数组 I 简单

给你一个长度为n的整数数组nums

如果存在索引0 < p < q < n − 1,使得数组满足以下条件,则称其为三段式数组(trionic)

  • nums[0...p]严格递增,
  • nums[p...q]严格递减,
  • nums[q...n − 1]严格递增。

如果nums是三段式数组,返回true;否则,返回false

示例 1:

输入:nums = [1,3,5,4,2,6]

输出:true

解释:

选择p = 2,q = 4

  • nums[0...2] = [1, 3, 5]严格递增 (1 < 3 < 5)。
  • nums[2...4] = [5, 4, 2]严格递减 (5 > 4 > 2)。
  • nums[4...5] = [2, 6]严格递增 (2 < 6)。

示例 2:

输入:nums = [2,1,3]

输出:false

解释:

无法选出能使数组满足三段式要求的pq

提示:

  • 3 <= n <= 100
  • -1000 <= nums[i] <= 1000

分析:遍历数组,检查是否满足三段式要求即可。

bool isTrionic(int* nums, int numsSize) { int a=nums[0],f=0,cnt=0; for(int i=1;i<numsSize;++i) { if(nums[i]>a) { if(!f)f=1,cnt++; else if(f==-1)f=1,cnt++; } else if(a>nums[i]) { if(f==1)f=-1,cnt++; else if(f!=-1)return false; } else return false; a=nums[i]; } return cnt==3; }
返回列表