博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jq遍历子元素_LeetCode基础算法题第140篇:最长的连续增加子序列
阅读量:4964 次
发布时间:2019-06-12

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

42ed550b3415ed6159db0a5b532809f2.png

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后> 到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和 精力有限,其他语言的实现有兴趣的朋友请自己尝试。初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式聊到大数据框架,从大数据聊到人工智能,... ...。

如果有任何问题可以在文章后评论或者私信给我。

持续分享下去,敬请您的关注。

LeetCode 674. 最长的连续增加子序列(Longest Continuous Increasing Subsequence)

问题描述:

给定未排序的整数数组,找到最长连续增加子序列的长度。

注:

数组的长度不超过10,000。

示例:

8d74ef422a9c5846028ceab66d3bf16d.png

C语言实现:

我测试了一些,所谓的"连续增加子序列"就是指:从数组的某一个元素开始的一段连续的元素的值是单调增加的。比如"1,2,3,4"是连续增加子序列,而"1,2,2,3"和"4,3,2,1"都不是。

我们用一个很传统的方法。

首先定义两个整型变量res和tmp,res存放最终的结果,tmp存放临时连续子序列长度。

开始遍历数组:

  • 如果前一个元素比后一个元素大那么tmp加1,说明当前元素和上一个元素处于同一个连续增加子序列中;
  • 否则,说明当前元素和上一个元素处于同一个连续增加子序列中,或者说连续增加子序列到此结束;所以我们比较res和tmp的值,将最大的重新赋值给res。然后重置tmp的值,再次统计下一个子序列;

遍历结束后,再次比较res和tmp的值,返回最大的那一个。

代码如下:

66814dfec862dddb5c3886b2997d982e.png

我们对这个算法做了一点点的优化,请看代码第12行,当当前元素是一个新连续增加子序列的开始元素时,如果res+i大于等于数组的长度,那么这时候即使后面的元素全部都是连续子序列,其长度也不可能超过res,所以可以直接返回res。这样可以跳过对后面一部分元素的遍历。

95ec4ed6df2028cdd02762c312aa008d.png

Java语言实现:

Java 的实现和C语言的实现一致,不再撰述。代码如下:

c7b607273244276e5d5d9edb33616445.png
eaf590739a748da14384b0137d3b5f0a.png

Python语言实现:

Python 的实现和C语言的实现一致,不再撰述。代码如下:

843d92686715b6d708e924e98c488109.png
8f2f0e2926943bf071c28a9af0e8f53b.png

谢谢大家一直以来的关注和支持!

我一直在努力的写好每一篇文章,画好每一份插图。但是作为一个996从业人员,时间精力十分有限。所以针对评论部分,以后只回答粉丝的问题和私信。希望仅仅是路过的朋友能够体谅,希望更多人关注《吾是我师》,谢谢!


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

你可能感兴趣的文章
64位UBUNTU下安装adobe reader后无法启动
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>
组件:slot插槽
查看>>
走进C++程序世界------异常处理
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>