本文主要是介绍最长的严格递增或递减子数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给你一个整数数组 nums 。
返回数组 nums 中
严格递增 或 严格递减 的最长非空子数组的长度。
示例 1:
输入:nums = [1,4,3,3,2]
输出:2
解释:
nums 中严格递增的子数组有[1]、[2]、[3]、[3]、[4] 以及 [1,4] 。
nums 中严格递减的子数组有[1]、[2]、[3]、[3]、[4]、[3,2] 以及 [4,3] 。
因此,返回 2 。
示例 2:
输入:nums = [3,3,3,3]
输出:1
解释:
nums 中严格递增的子数组有 [3]、[3]、[3] 以及 [3] 。
nums 中严格递减的子数组有 [3]、[3]、[3] 以及 [3] 。
因此,返回 1 。
示例 3:
输入:nums = [3,2,1]
输出:3
解释:
nums 中严格递增的子数组有 [3]、[2] 以及 [1] 。
nums 中严格递减的子数组有 [3]、[2]、[1]、[3,2]、[2,1] 以及 [3,2,1] 。
因此,返回 3 。
int longestMonotonicSubarray(int* nums, int numsSize) {if(numsSize==1)return 1;int maxLength=1;int length2=1;int type=1; //1是加,2是减int i=0;for(;i<numsSize-1;i++){if(nums[i]>nums[i+1]){if(type==2)length2++;else {length2=2;type=2;} }else if(nums[i]<nums[i+1]){if(type==1)length2++;else{length2=2;type=1;} }else{length2=1;}if(length2>maxLength)maxLength=length2;}return maxLength;
}
这篇关于最长的严格递增或递减子数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!