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

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

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;
}
相关推荐
倦王8 小时前
力扣日刷47-补
python·算法·leetcode
无限进步_10 小时前
【C++】巧用静态变量与构造函数:一种非常规的求和实现
开发语言·c++·git·算法·leetcode·github·visual studio
凌波粒10 小时前
LeetCode--344.反转字符串(字符串/双指针法)
算法·leetcode·职场和发展
啊哦呃咦唔鱼10 小时前
LeetCode hot100-543 二叉树的直径
算法·leetcode·职场和发展
样例过了就是过了11 小时前
LeetCode热题100 爬楼梯
c++·算法·leetcode·动态规划
ThisIsMirror12 小时前
leetcode 452 Arrays.sort()排序整数溢出、Integer.compare(a[1], b[1])成功的问题
算法·leetcode
x_xbx13 小时前
LeetCode:438. 找到字符串中所有字母异位词
算法·leetcode·职场和发展
派大星~课堂13 小时前
【力扣-94.二叉树的中序遍历】Python笔记
笔记·python·leetcode
AI成长日志14 小时前
【笔面试算法学习专栏】堆与优先队列实战:力扣hot100之215.数组中的第K个最大元素、347.前K个高频元素
学习·算法·leetcode
6Hzlia14 小时前
【Hot 100 刷题计划】 LeetCode 45. 跳跃游戏 II | C++ 贪心算法最优解题解
c++·leetcode·游戏