惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
B
Blog
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Jina AI
Jina AI
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
L
LangChain Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Help Net Security
B
Blog RSS Feed
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题

博客园 - Fanny123

LeetCode最大数字范围的整数之和 LeetCode统计好子数组 LeetCode边界与内部和相等的稳定子数组 三段式数组II 变为活跃状态的最小时间 平衡装运的最大数量 相邻字符串之间的最长公共前缀 分割字符串 找出数组中的所有 K 近邻下标 使叶子路径成本相等的最小增量 硬币面值还原 检查元素频次是否为质数 等积子集的划分方案 统计一个数组中好对子的数目 LeetCode 1482. 制作 m 束花所需的最少天数 C# 基础(更新中) 圆形靶内的最大飞镖数量 丑数 验证栈序列 BST的中序后继
三段式数组 I
Fanny123 · 2025-08-03 · via 博客园 - Fanny123

三段式数组 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©leetcode

解答

根据题目,遍历数组从0到p检查严格递增,从p到q检查严格递减,从q到n-1检查严格递增,并且满足0 < p < q < n − 1,也就是p!=0,p!=n-1,q!=p,q!=n-1

class Solution {
    public boolean isTrionic(int[] nums) {
        int cnt=0;
        int n=nums.length;
        int i=0;
        while(i<n-1){
            if(nums[i]>=nums[i+1]){
                break;
            }
            i++;
        }
        //p
        if(i==0){
            return false;
        }
        if(i==n-1){
            return false;
        }
        while(i<n-1){
            if(nums[i]<=nums[i+1]){
                break;
            }
            i++;
        }
        //q
        if(i==n-1){
            return false;
        }
        while(i<n-1){
            if(nums[i]>=nums[i+1]){
                break;
            }
            i++;
        }
        if(i==n-1){
            return true;
        }else{
            return false;
        }
    }
}©leetcode