IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> LeetCode_491 递增子序列 /大厂笔试题讲解 -> 正文阅读

[Java知识库]LeetCode_491 递增子序列 /大厂笔试题讲解

在这里插入图片描述

一、题目信息

本题和LeetCode_491相同,这里我以牛客网的形式写题。
在这里插入图片描述

二、解题思路

题目要求的只需要找到长度为三的子序列,还不要求是连续的。创建两个引用,first,second,分别表示第一大和第二大的数字,如果遍历的时候数组中还有比他们两个数还大的数字,那长度为3的子序列不就有了吗?如果遍历完了还么有,就说明是真的没有了,返回false。

还有其他两种情况
1、遍历数组的时候遇到的数(这里称为P)first比p大,既然连子序列最小的数都比它大,那么就说明这时候的first不是最小的,更新first,让first=p。

2、P比fist大但是没有second大,大不是很大,但是也不小,这时我们更新
second,第二大的数就有了。

3、图和例子在下方。

在这里插入图片描述

假如下面有以下数组,8,25,13,11,30,数组名为arr。初始化fist为arr[0],second为Integer的最大值。如果还能有数字比second大,那直接返回好了。就是图的第三种情况。我们让i从1开始走一步过程。

1、i=1,arr[i]>first但是小于second更新second,second=arr[i],为25.
2、i=2,arr[i]>first但是小于second,更新second,second=13.
3、i=3,arr[i]>first但是小于second,更新second,second=11.
4、i=4,arr[i]>first,还大于second,找到了!

在这里插入图片描述

三、解题代码

由JAVA实现

class Main{

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int []arr=new int[n];
        for (int i = 0; i <n ; i++) {
            arr[i]=scanner.nextInt();
        }
        int first=arr[0];
        int second=Integer.MAX_VALUE;
        for (int i = 1; i <n ; i++) {
            if(arr[i]<first){
                first=arr[i];

            }
            else  if(arr[i]>first && arr[i]<second){
             second=arr[i];
            }
            else  if(arr[i]>first && arr[i]>second){
                System.out.println("true");
                return;
            }
        }
        System.out.println("false");
    }
}

四、其他好题分享

k个一组翻转链表 哔哩哔哩2020校园招聘笔试题/LeetCode_25(困难)讲解

一年中的第几天 哔哩哔哩2020校园招聘笔试题讲解

复数乘法 哔哩哔哩2020校园招聘面试题详解

剑指 Offer 67. 把字符串转换成整数

怎么把i am a student逆置成student a am i?面试题逆置字符串讲解

三种方法任君挑选 LeetCode_136只出现一次的数字

什么?动态规划10行求出连续子数组的最大和 剑指offer-42讲解

剑指 Offer 39. 数组中出现次数超过一半的数字 简单易懂14行搞定 。人人皆可会

二叉树的层序遍历原理+LeetCode真题练习

LeetCode 24:两两交换链表中的节点,1662. 检查两个字符串数组是否相等

LeetCode 21. 合并两个有序链表

剑指 Offer 58 - II. 左旋转字符串的三种解法一起看看吧!!

字符串“aabcccccaaa”压缩成“a2b1c5a3“还要返回更小的?力扣面试题 01.06. 字符串压缩讲解

字符串bit666keji123“中数字的个数?

找到不重复的数字进阶版 空间复杂度O(1),时间O(n)平方,不能修改数组内容。不能对数组进行排序

LeetCode_231. 判断一个数是否为2 的幂,与运算一行代码解决

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和

剑指 Offer II 010. 和为 k 的子数组 前缀和+哈希表优化讲解

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:08:16  更:2021-09-13 09:08:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:45:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码