leetcode334. 递增的三元子序列(java)

news2024/11/25 1:06:01

递增的三元子序列

  • 题目描述
    • 贪心

题目描述

难度 - 中等
leetcode334. 递增的三元子序列

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。
如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

示例 1:
输入:nums = [1,2,3,4,5]
输出:true
解释:任何 i < j < k 的三元组都满足题意

示例 2:
输入:nums = [5,4,3,2,1]
输出:false
解释:不存在满足题意的三元组

示例 3:
输入:nums = [2,1,5,0,4,6]
输出:true
解释:三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6

提示:
1 <= nums.length <= 5 * 10^5
-231 <= nums[i] <= 2^31 - 1
在这里插入图片描述

贪心

如果数组 nums中存在一个下标 iii 满足 1≤i<n−1,使得在 nums[i] 的左边存在一个元素小于 nums[i]且在 nums[i] 的右边存在一个元素大于 nums[i],则数组 nums 中存在递增的三元子序列。

在 nums[i] 的左边存在一个元素小于 nums[i] 等价于在 nums[i] 的左边的最小元素小于 nums[i],在 nums[i] 的右边存在一个元素大于 nums[i] 等价于在 nums[i] 的右边的最大元素大于 nums[i],因此可以维护数组 nums 中的每个元素左边的最小值和右边的最大值。

创建两个长度为 n 的数组 leftMin和 rightMax,对于 0≤i<n,leftMin[i]表示 nums[0]到 nums[i]中的最小值,rightMax[i] 表示 nums[i] 到 nums[n−1]中的最大值。
数组 leftMin 的计算方式如下:

1.leftMin[0]=nums[0];
2. 从左到右遍历数组 nums\textit{nums}nums,对于1≤i<n,leftMin[i]=min⁡(leftMin[i−1],nums[i])。
数组 rightMax的计算方式如下:
3.rightMax[n−1]=nums[n−1];
4.从右到左遍历数组 nums\textit{nums}nums,对于 0≤i<n−10 \le i < n - 10≤i<n−1,rightMax[i]=max⁡(rightMax[i+1],nums[i])。

代码演示:

    public boolean increasingTriplet(int[] nums) {
        if(nums.length < 3){
            return false;
        }
        int first = nums[0];
        int second = Integer.MAX_VALUE;
        for(int i = 0; i < nums.length;i++){
            int num = nums[i];
            if(num > second){
                return true;
            }else if(num > first){
                second = num;
            }else{
                first = num;
            }
        }
      
       return false;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1040707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JOSEF约瑟 抗干扰中间继电器UEG/F-4H UEG/F-8H/110VDC 启动功率大于5W

UEG/F系列 抗干扰中间继电器 系列型号&#xff1a; UEG/F-1H1D/110VDC抗干扰中间继电器&#xff1b;UEG/F-1H1D/220VDC抗干扰中间继电器&#xff1b;UEG/F-1H1D/24VDC抗干扰中间继电器&#xff1b; UEG/F-1H1D/48VDC抗干扰中间继电器&#xff1b;UEG/F-1H1D/125VDC抗干扰中间…

“全景江西·南昌专场”数字技术应用场景发布会 | 万广明市长莅临拓世集团展位,一览AIGC科技魅力

随着数字技术的迅猛发展&#xff0c;传统产业正在发生深刻的变革&#xff0c;新兴产业蓬勃兴起。但要想实现数字经济超常规发展&#xff0c;就要在数字产业化上培育新优势&#xff0c;大力实施数字经济核心产业提速行动&#xff0c;加快推进“一核三基地”建设。在这个数字经济…

下载项目路径下的文件

文件下载&#xff08;比如模板下载&#xff09;&#xff0c;方法之一是先在服务器上创建一个路径&#xff0c;再通过代码里面写死或配置去读取这个路径的下的这个文件进行下载。 这个方法的缺点就是需要提前创建好这个目录&#xff0c;并给文件路径给与读写权限&#xff0c;上线…

助力养殖行业数字化转型,基于深度学习模型开发构建猪脸识别系统

养殖行业的数字化进程在国内还是比较缓慢的&#xff0c;一些大厂在前面的一些探索时期做过一些相关的工作&#xff0c;但是受限于各种因素并没有能够广泛地铺展开来&#xff0c;数字化不应该被理解为非常高大上的遥不可及的东西&#xff0c;数字化也不应该成为中低产的一道鸿沟…

AnsibleFATE部署过程

前言 基本上按照官方文档就行了&#xff0c;先做before deploy&#xff0c;再做three side guide.md。 以下是可能出现的问题 这个AnsibleUndefinedVariable: ‘ansible_ssh_host‘ is undefined.是肯定会遇到的&#xff0c;参考我这篇 安全性限制 ansible提示 warning&…

java单例的几种实现方式

单例模式 1.饿汉式&#xff08;线程安全&#xff09;2.懒汉式&#xff08;线程不安全&#xff09;3.懒汉式(线程安全)4. 双重校验5. 静态内部类6. 反射对于单例的破坏7. 序列化对于单例的破坏8.枚举(推荐方式) 1.饿汉式&#xff08;线程安全&#xff09; 在类加载期间初始化静…

写SAE评测,获 Airpods 2大奖【集结令】!

Serverless 应用引擎 SAE 开启测评有奖&#xff01;名额有限&#xff0c;先到先得&#x1f3c6;&#xff01; Serverless应用引擎SAE是一款极简易用、自适应弹性的容器化应用平台。现面向所有用户发出诚挚邀请&#xff0c;参与一分钟部署在线游戏&#xff0c;写下宝贵评测反馈。…

【操作系统笔记七】进程和线程

进程的组成 进程要读取 ELF 文件&#xff0c;那么&#xff1a; ① 要知道文件系统的信息&#xff0c;fs_struct② 要知道打开的文件的信息&#xff0c;files_struct 一个进程除了需要读取 ELF 文件外&#xff0c;还可以读取其他的文件中的数据。 进程中肯定有一个 mm_struct…

华为云云耀云服务器L实例评测|如何保障华为云云耀云服务器L实例的安全和性能

引言 云耀云服务器L实例是华为云提供的高性能计算实例&#xff0c;为用户提供稳定可靠的云计算环境。为了保障实例的安全和性能&#xff0c;用户可以通过设置防火墙和安全组策略来限制网络访问和防止恶意攻击。华为云提供了灵活的管理工具&#xff0c;用户可以通过控制台、API…

【AD】【规则设置】【pcb】默认规则设置

默认规则设置 PCB画板规则的设置1. 间距规则2. 线宽规则3. 过孔规则设置方法盖油的效果&#xff08;左侧&#xff09;过孔的外径盖油 - 8mil 【负片层】过孔的外径盖油 - 8mil 【正片层&#xff08;信号走线层&#xff09;】 【tip】焊盘形状的选取 4.铺铜高级设置&#xff0c;…

快速排序代码及时间空间复杂度

快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它的平均时间复杂度为 O(n log n)&#xff0c;是许多排序算法中性能最好的之一。下面是快速排序的代码示例和时间空间复杂度分析&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#x…

计算机网络相关知识点(二)

TCP如何保证传输过程的可靠性&#xff1f; 校验和&#xff1a;发送方在发送数据之前计算校验和&#xff0c;接收方收到数据之后同样需要计算&#xff0c;如果不一致&#xff0c;那么代表传输有问题。 确认应答序&#xff0c;序列号&#xff1a;TCP进行传输时数据都进行了编号…

安全测试 —— Jmeter 登录接口密码 - rsa加密

1、出于安全考虑&#xff0c;有的网站在登陆时为了防止用户在登录时账户密码泄漏&#xff0c;会使用各种加密&#xff0c;给登录的账户密码加密。 比如&#xff1a;明文保存&#xff0c;对称加密算法&#xff0c;MD5、SHA1等单向HASH算法&#xff0c;RSA算法&#xff0c;加密F…

高校为何购买数据库的重要性

随着信息时代的到来&#xff0c;数据库已经成为人们获取信息的重要来源之一。高校作为学术研究的重要机构&#xff0c;对于数据库的需求也越来越大。但是&#xff0c;为什么高校要购买数据库呢&#xff1f;本文将从以下几个方面阐述高校购买数据库的重要性。 一、数据的重要性 …

【Linux】线程同步与互斥

文章目录 &#x1f4d6; 前言1. 线程互斥1.1 临界资源&#xff1a;1.2 互斥性与原子性&#xff1a;1.2 - 1 概念回顾 1.3 线程安全&#xff1a;1.3 - 1 可重入与不可重入 1.4 线程加锁与解锁&#xff1a;1.4 - 1 竞争锁1.4 - 2 锁的原子性 1.5 加锁的原子性如何实现&#xff1a…

丢失d3dcompiler 47.dll的修复方案,哪个更值得推荐

d3dcompiler 47.dll 是 DirectX 中的一部分&#xff0c;它负责实现硬件加速的图形渲染。当我们运行一些需要 DirectX 支持的游戏或程序时&#xff0c;系统会调用 d3dcompiler 47.dll 文件。如果该文件丢失或损坏&#xff0c;我们将无法正常运行这些游戏或程序&#xff0c;从而给…

外汇天眼:交易的本质就是要解决这两个问题!

方向 在交易中&#xff0c;方向的判断至关重要。尽管判断对错在很大程度上是一个概率游戏&#xff0c;但我们可以细分方法来更好地解决这个问题。解决方向的方法可以总结为三大类&#xff1a; 1.通过容错和次数来解决方向 纯粹的逆市加码被认为是低级的做法&#xff0c;因为…

详细解析下gRPC examples-RBAC authenication-权限组管理-基于自定义Token

详细解析下gRPC examples-RBAC authenication-权限组管理-基于自定义Token 什么是RABC认证&#xff1f; RBAC (Role-Based Access Control) 授权策略是一种用于控制系统或应用程序中用户或实体对资源的访问权限的方法。在 RBAC 中&#xff0c;访问控制是基于角色的&#xff0…

快速找到离群值的三种方法

本文将介绍3个在数据集中查找离群值的Python方法 离群值&#xff08;Outliers&#xff09;是指在数据集中与其他数据点明显不同或者异常的数据点。这些数据点可能比其他数据点要远离数据集的中心&#xff0c;或者具有异常的数值。离群值可能是由于数据采集错误、异常事件、测量…

大型监控网络设备架构

IT监控架构的功效日益突出&#xff0c;已成为企业信息化建设不可或缺的一部分。本文将详细介绍IT监控架构的含义、构成、功能及其在公司中的应用。 IT监控架构的含义是什么&#xff1f; 简单来说&#xff0c;IT监控架构就是利用一系列技术和方法对公司的IT系统进行全方位的监控…