华为机试题 :最长递增子序列题目

题目描述

给定一个整数数组 nums,找到其中最长严格递增子序列的长度。

输入描述

第一行输入一个整数 n,表示数组长度。

第二行输入 n 个整数,表示数组 nums。

输出描述

输出最长严格递增子序列的长度。

示例 1

输入

text

复制代码
8
10 9 2 5 3 7 101 18

输出

text

复制代码
4

说明

最长递增子序列是 [2, 3, 7, 101],长度为 4。

C++ 解法一:动态规划 O(n^2)

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int> nums(n);
    for (int i = 0; i < n; i++) cin >> nums[i];

    vector<int> dp(n, 1);
    int ans = 1;

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i; j++) {
            if (nums[j] < nums[i]) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
        ans = max(ans, dp[i]);
    }

    cout << ans << endl;
    return 0;
}
相关推荐
动词ing2 小时前
【题目练习】算法 组合总和
算法
程序员-Benothing2 小时前
Linux文本排序统计命令:sort、uniq、wc、cut、tr实战
java·开发语言·算法
开发者联盟league2 小时前
c++11 使用chrono库转换时间点和字符串,计算时间点间隔
java·c++·算法
老歌老听老掉牙3 小时前
两个平面旋转平移坐标系间的坐标变换关系
python·算法·平面·旋转·平移
W.A委员会3 小时前
PID与PID整定
python·算法
蜕变的土豆3 小时前
工业监控RTSP取流-实践指南
c++·视频
进化中的刀盾兽3 小时前
从零实现 C++ Json-Rpc(八):补齐 detail.hpp——JSON 封装与请求 ID 生成
c++·rpc
冷雨夜中漫步3 小时前
YOLO快速入门——(2)YOLO V26安装与快速入门
图像处理·算法·yolo·计算机视觉
longlongzihan3 小时前
LeetCode 41. 缺失的第一个正数:从基础解法到原地哈希
c++·算法·leetcode