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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP