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

解释:

无法选出能使数组满足三段式要求的 p 和 q 。

提示:

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

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

cpp 复制代码
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;
}
相关推荐
夏幻灵10 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
Navigator_Z12 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
圣保罗的大教堂13 小时前
leetcode 301. 删除无效的括号 困难
leetcode
夏幻灵15 小时前
每日一题:LeetCode 206:反转链表——三指针与原地反转详解
算法·leetcode·链表
Tisfy18 小时前
LeetCode 0301.删除无效的括号:二进制枚举 / 回溯
算法·leetcode·字符串·题解·回溯·括号匹配·二进制枚举
Nil20819 小时前
leetcode 322零钱兑换
算法·leetcode·职场和发展
yi01119 小时前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
木井巳19 小时前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
yi01119 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
alphaTao20 小时前
LeetCode 每日一题 2026/10/5-2026/10/11
算法·leetcode