📅  最后修改于: 2023-12-03 15:10:21.660000             🧑  作者: Mango
在编程中,经常需要求出数组中存在的最大连续数。例如,我们可以在一个整数数组中求出最长连续递增序列的长度,或者求出最长连续递减序列的长度。本文将介绍如何实现这些功能。
首先我们来看最长连续递增序列的实现。假设给定一个整数数组 nums,我们要求出最长连续递增序列的长度。可以按照以下步骤实现:
首先定义两个变量 maxLength 和 currentLength。maxLength 用于保存最长连续递增序列的长度,currentLength 用于保存当前连续递增序列的长度。
从数组的第二个元素开始遍历数组,如果当前元素比前一个元素大,则将 currentLength 加一,否则将 currentLength 重置为 1。
每次更新 currentLength 时,都要将其与 maxLength 比较,如果 currentLength 大于 maxLength,则更新 maxLength。
遍历完数组后,maxLength 即为最长连续递增序列的长度。
下面是该算法的 Python 代码实现:
def findMaxIncreasing(nums):
maxLength = 1
currentLength = 1
for i in range(1, len(nums)):
if nums[i] > nums[i-1]:
currentLength += 1
else:
maxLength = max(maxLength, currentLength)
currentLength = 1
return max(maxLength, currentLength)
该算法的时间复杂度为 O(n),因为只需遍历一次数组即可求出最长连续递增序列的长度。
现在我们来看最长连续递减序列的实现。假设给定一个整数数组 nums,我们要求出最长连续递减序列的长度。可以按照以下步骤实现:
首先定义两个变量 maxLength 和 currentLength。maxLength 用于保存最长连续递减序列的长度,currentLength 用于保存当前连续递减序列的长度。
从数组的第二个元素开始遍历数组,如果当前元素比前一个元素小,则将 currentLength 加一,否则将 currentLength 重置为 1。
每次更新 currentLength 时,都要将其与 maxLength 比较,如果 currentLength 大于 maxLength,则更新 maxLength。
遍历完数组后,maxLength 即为最长连续递减序列的长度。
下面是该算法的 Python 代码实现:
def findMaxDecreasing(nums):
maxLength = 1
currentLength = 1
for i in range(1, len(nums)):
if nums[i] < nums[i-1]:
currentLength += 1
else:
maxLength = max(maxLength, currentLength)
currentLength = 1
return max(maxLength, currentLength)
该算法的时间复杂度也为 O(n),因为只需遍历一次数组即可求出最长连续递减序列的长度。
本文介绍了如何求出给定数组中存在的最长连续数,包括最长连续递增序列和最长连续递减序列。这两个问题可以使用类似的算法来解决,时间复杂度均为 O(n)。