C++ 中的最长连续递增子序列
假设我们有一个整数数组,我们必须查找最长连续递增子数组的长度。
因此,如果输入类似于 [2,4,6,5,8],则输出将为 3。因为最长连续递增子序列是 [2,4,6],其长度为 3。
为解决这个问题,我们将按照以下步骤操作:
- 如果数组的长度 <= 1,则:
- 返回数组的长度
- ans := 1、cnt := 1
- 对于初始化 i := 0,当 i < 数组的长度,更新(将 i 加 1),执行:
- 如果 nums[i] < nums[i + 1],则:
- (将 cnt 加 1)
- ans := ans 和 cnt 中的最大值
- 否则
- cnt := 1
- 如果 nums[i] < nums[i + 1],则:
- 返回 ans
让我们看看以下实现以获得更好的理解:
示例
#include <bits/stdc++.h> using namespace std; class Solution { public: int findLengthOfLCIS(vector<int>& nums) { if (nums.size() <= 1) return nums.size(); int answer = 1, count = 1; for (int i = 0; i < nums.size() - 1; i++) { if (nums[i] < nums[i + 1]) { count++; answer = max(answer, count); } else { count = 1; } } return answer; } }; main(){ Solution ob; vector<int> v = {2,4,6,5,8}; cout << (ob.findLengthOfLCIS(v)); }
输入
{2,4,6,5,8}
输出
3
广告