最长递增子序列c语言
时间: 2023-07-13 22:24:35 浏览: 98
C语言实现最长递增子序列问题的解决方法
以下是 C 语言实现最长递增子序列的代码:
```c
#include <stdio.h>
int lis(int arr[], int n)
{
int dp[n];
int max = 0;
for (int i = 0; i < n; i++) {
dp[i] = 1;
for (int j = 0; j < i; j++) {
if (arr[i] > arr[j] && dp[i] < dp[j] + 1) {
dp[i] = dp[j] + 1;
}
}
if (dp[i] > max) {
max = dp[i];
}
}
return max;
}
int main()
{
int arr[] = { 10, 22, 9, 33, 21, 50, 41, 60 };
int n = sizeof(arr) / sizeof(arr[0]);
printf("Length of LIS is %d", lis(arr, n));
return 0;
}
```
该算法的时间复杂度为 O(n^2),其中 n 是数组的长度。
阅读全文