博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Middle-题目44:334. Increasing Triplet Subsequence
阅读量:2432 次
发布时间:2019-05-10

本文共 896 字,大约阅读时间需要 2 分钟。

题目原文:

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.

Formally the function should:

Return true if there exists i, j, k
such that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 else return false.
Your algorithm should run in O(n) time complexity and O(1) space complexity.
题目大意:
给出一个数组,判断是否存在一个递增的长度为3的子序列。
题目分析:
(1) 朴素解法: O(n3) 暴力搜索;
(2) 最长递增子列:引用的方法判断最长递增子列的长度是否>=3,最好的时间复杂度是O(nlogn)。
(3) O(n)算法:扫描一遍数组,令a1是当前最小值,a2是a1以后次小值,则如果当前的数比a2还大,就存在。
源码:(language:java)

public class Solution {    public boolean increasingTriplet(int[] nums) {        int a1 = Integer.MAX_VALUE,a2 = Integer.MAX_VALUE;        for(int num : nums) {            if(num<=a1)                 a1=num;            else if(num<=a2)                a2=num;            else                return true;        }        return false;    }}

成绩:

1ms,beats 34.32%,众数1ms,65.68%

转载地址:http://ofomb.baihongyu.com/

你可能感兴趣的文章
如何在cmd下,查找指定一个TXT文件的内容,把这个文本里包含关键字的所有行复制到一个新的文本中
查看>>
厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...
查看>>
三分钟黑了阿里?马云下死命令留他?吴翰清辟谣:我没黑过阿里
查看>>
如果重新一次高考,你还会选择软件专业当程序员吗? | 每日趣闻
查看>>
如何设计一个安全可靠的 API 接口?
查看>>
Python 爬取 13966 条运维招聘信息,这些岗位最吃香
查看>>
以太坊创始人V 神:普通人看见现在,天才看见未来
查看>>
关于鸿蒙 2.0,那些开发者不知道的一切
查看>>
Google 排名第一的语言,引数十万人关注:搞定它,技术大牛都甘拜下风
查看>>
软件开发行业,年轻与大龄程序员的生存现状
查看>>
打开数“智”化之门,一字之差带来的思考
查看>>
张一鸣无圈胜破圈?
查看>>
干货! AI 推断解决方案栈 Vitis AI 全流程独家解析
查看>>
真相了 | 敲代码时,程序员戴耳机究竟在听什么?
查看>>
麒麟信安面向场景化创新,赋能openEuler商业验证
查看>>
3 年培养 10 万“码农”,郑州推出“码农计划”
查看>>
去年我年薪 30W,今年我一天做 3 顿饭
查看>>
入职大厂,我容易吗?
查看>>
漫画:什么是加密算法?
查看>>
程序员是如何运用增长思维找到女朋友?
查看>>