Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Dãy con tăng liên tiếp dài nhất trong C++


Mô tả bài toán

Cho mảng số nguyên, tìm độ dài dãy con liên tiếp tăng dần chặt dài nhất.

Ví dụ: [2,4,6,5,8] → Dãy con tăng dài nhất: [2,4,6] độ dài 3.

Giải pháp (Duyệt tuyến tính)

  • Nếu mảng ≤ 1 phần tử → trả về kích thước.
  • Khởi tạo answer = 1, count = 1.
  • Duyệt i = 0..n-2:
    • Nếu nums[i] < nums[i+1] → count++, cập nhật answer.
    • Ngược lại → reset count = 1.

Ví dụ minh họa

#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;
    }
};

int main() {
    Solution ob;
    vector<int> v = {2,4,6,5,8};
    cout << ob.findLengthOfLCIS(v);
    return 0;
}

Đầu vào

{2,4,6,5,8}

Đầu ra

3