📜  门|门 IT 2007 |第 72 题(1)

📅  最后修改于: 2023-12-03 15:42:21.968000             🧑  作者: Mango

门|门 IT 2007 |第 72 题

这道题是一个程序员的选择题,考查了程序员在编程中的一些基础知识和技能。以下是这道题的详细介绍:

题目描述

给定一个长度为 n 的整形数组 arr,请编写一个函数来计算该数组的最大上升子序列的长度。

输入格式

输入共两行,第一行包含一个整数 n,表示数组 arr 的长度。第二行包含 n 个整数,表示数组 arr 的 n 个元素。

输出格式

输出共一行,一个整数,表示该数组的最大上升子序列的长度。

输入样例
6
10 9 2 5 3 7
输出样例
3
编程语言要求

题目的代码实现可以使用 Python, C++, Java, Go 等常见的编程语言实现。

代码示例

以下为 Python 实现的代码示例:

from typing import List

def lengthOfLIS(nums: List[int]) -> int:
    dp = [1] * len(nums)
    for i in range(1, len(nums)):
        for j in range(i):
            if nums[j] < nums[i]:
                dp[i] = max(dp[i], dp[j] + 1)
    return max(dp)

n = int(input())
arr = list(map(int, input().split()))
print(lengthOfLIS(arr))

以上是这道题的详细介绍,希望能对程序员们有所帮助!