题目:

分析:

  1. 选取第一个元素为主元
  2. 遍历数组,当前元素大于主元,如果当前元素同时大于递增序列栈顶元素,将当前元素压入递增序列栈,如果此时该元素大于前递增序列栈栈顶,则返回真;如果当前元素小于递增序列栈顶元素,清空当前递增序列栈,如果弹出栈的栈顶元素小于前递增序列栈栈顶元素,则替换前递增序列栈
  3. 当前元素小于主元,替换主元,如果当前递增序列栈长度为2,则添加至前递增序列栈
  4. 该算法时间复杂度为O(n),占用内存为两个常数尺寸的栈,空间复杂度为O(1)

代码:

class Solution(object):def increasingTriplet(self, nums):""":type nums: List[int]:rtype: bool"""if len(nums) < 3:return Falsemajor = nums[0]stack = [major]stack2 = []for x in nums[1:]:if x > major:if stack2:if x > stack2[-1]:return Trueif x > stack[-1]:stack.append(x)else:if len(stack) == 2:if stack2:if x < stack2:stack2 = stack[:]else:stack2 = stack[:]stack = [major]stack.append(x)elif x < major:major = xif len(stack) == 2:if stack2:if x < stack2:stack2 = stack[:]else:stack2 = stack[:]stack = [x]# print stackif len(stack) >= 3:return Truereturn False

思考:

leet334递增的三元子序列相关推荐

  1. LeetCode:递增的三元子序列【334】

    LeetCode:递增的三元子序列[334] 题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i ...

  2. 334. 递增的三元子序列(中等 贪心 数组)

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

  3. 数组题目:递增的三元子序列

    文章目录 题目 标题和出处 难度 题目描述 要求 示例 数据范围 进阶 解法 思路和算法 代码 复杂度分析 题目 标题和出处 标题:递增的三元子序列 出处:334. 递增的三元子序列 难度 6 级 题 ...

  4. LeetCode 每日一题打卡:334.递增的三元子序列

    题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...

  5. Leetcode 334.递增的三元子序列

    原题链接: Leetcode 334.递增的三元子序列 Given an integer array nums, return true if there exists a triple of ind ...

  6. 递增的三元子序列(来源力扣)

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

  7. LeetCode-334. 递增的三元子序列 Python3版本

    334. 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ...

  8. 【LeetCode】334. 递增的三元子序列

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

  9. 334. 递增的三元子序列

    334. 递增的三元子序列 难度:中等 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < ...

最新文章

  1. PNAS:利用long-read生成个人转录组
  2. mysqld启动报错
  3. jconsole_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  4. GIt帮助文档之创建新的Git仓库——现有目录下,通过导入所有文件来创建
  5. 有关二叉树方法java实现
  6. Codeforces.1051G.Distinctification(线段树合并 并查集)
  7. ios游戏开发 Sprite Kit教程:初学者 3
  8. 使用谷歌学术镜像查找英文论文、英文论文阅读
  9. 根据经纬度定位用户所在城市
  10. 二元函数可导与可微的关系_如何理解多元函数可微与可偏导的关系?
  11. LiveQing私有云流媒体-云端录像时间轴视频及列表视图
  12. Python数据分析之股票数据
  13. Scrapy入门-爬取需要登录后才能访问的数据
  14. 2021年南京天印中学高考成绩查询,2021年南京重点高中名单及排名,南京高中高考成绩排名榜...
  15. Android 微信聊天页面
  16. PGSQL创建管理员账号
  17. php框架laravel下载,laravel 5.4
  18. 高数笔记(十):定积分的概念与性质,微积分基本公式,牛顿-莱布尼兹公式,变限函数求导
  19. 点击地图获取经纬度(基于腾旭地图api)
  20. 为什么你的蓝牙耳机总是出毛病,不好好反思一下这些问题吗?

热门文章

  1. Android应用构建:8:使用keytool确认证书与私钥信息
  2. 侵入式与非侵入式概念
  3. 怎样用zbrush变化目标(Morph Target)子调控板
  4. edge下载慢?教你打开多线程下载,速度直接起飞
  5. uefi启动 多硬盘gtp_BIOS支持UEFI,整个硬盘GUID(GPT)分区,能否安装原版Mac OS
  6. 纪念博客访问破百万!
  7. 主数据管理系统mdm哪个产品好,为什么,越详细越好?
  8. 高考专科分数计算机,2017年高考全国各省高职专科,录取分数线陆续公布
  9. 3D模型欣赏:强肌肉男的壮汉3d角色 肉跟血管的纹理材质超级写实
  10. python主要是干什么用的,python到底是干什么的